The principles behind the current method were pretty simple, we have 10 copies of game X and the 10 people with the most reputation that are interested get the game. Each user can only apply for 2 games. That's it.
I think the basic idea to simultaneously select multiple games is good, especially for the people with sub-10k reputation that might be interested in the more popular games, as they can then select an alternative game if they don't make the reputation cutoff. Overwhelming the meta site was with hindsight probably not ideal, so one question per game is out.
So, one idea on how to perform the selection would be to make 1 round per quarter, or maybe every 2-3 months and open one meta question for that time period with a list of games that are available. Everyone interested posts one answer with a list of games ordered by preference.
That data would then be used to distribute the games onto users:
- Iterate over all users by reputation in descending order
- Iterate over the list of games in order of preference
- If the user has slots left and there are copies of the game left, assign the game to him
That method should produce very similar results to the current method.
Some other things that might be nice would be to adjust the number of copies for very popular games. One problem I see with the current approach is that over a longer timespan it will increasingly favor the old, established users. At some point it is likely necessary to use a different parameter than total reputation, to allow new, but enthusiastic users to get the free games.