Suppose I have 5 groups of 5 players. Each player has a skill rating from 1 to 100.
I'd like to evenly distribute players, 1 from each group, into teams of 5.
Suppose the $i^{th}$ player in team $j$ has ranking $r_{ji}$. When I break each player into a team (one player from each group) their team's ranking is the average ranking of the comprising players
$$R_j = \dfrac{1}{5} \sum_i r_{ji} \>.$$
I would like to minimize $$\sum_j (R_j - \bar{r} ) ^2 \>. $$
Where $\bar{r}$ is the mean ranking of all players.
Is there a recommended strategy, or approach, to this kind of optimization? How can I best assign players to a teams to minimize this quantity?
You can code this as a mixed integer linear program, with a quadratic objective function. Good quality solvers should have no problem with it. You can also apply a variety of metaheuristics to get good (but not provably optimal) solutions to it. A colleague and I published a paper on a somewhat more complex (in terms of number of attributes/metrics and side constraints) variant of this problem.