Splitting a class, a five-a-side group or a workshop into teams sounds trivial until someone says "that's not fair". There are two different kinds of fair: nobody chose the teams (pure chance) and the teams are even (balanced strength). They pull in different directions. This article compares the three methods in our random team generator on the same list of players, with numbers from 2,000 simulated splits, and covers the practical problems: odd numbers, friends, rivals and how to prove the draw was honest.
The test group
Twelve players with a skill rating from 3 to 9: An 8, Bình 6, Chi 9, Dũng 5, Em 7, Giang 4, Hà 8, Khoa 6, Lan 7, Minh 5, Nga 9, Phúc 3. The ratings add up to 77, so three teams of four cannot all have the same total; the best possible split has totals 26, 26 and 25, a difference of 1.
Pure random
Shuffle the names and deal them out. Every arrangement is equally likely, which is exactly what makes it fair in the first sense: nobody can claim the teams were stacked. The cost is balance. Over 2,000 random splits of the test group, the gap between the strongest and weakest team averaged 6.6 points, and in the worst split it was 16. One typical draw gave teams of 22, 28 and 27.
Random is the right choice when skill does not matter much, when there is no fair way to rate people (a mixed class, a party game), or when the appearance of fairness matters more than the score.
"Random" also has to mean random. A shuffle that picks positions with a simple remainder (random % n) makes some orders slightly more likely than others; ours draws from the browser's cryptographic generator and rejects the values that would cause that bias, as explained for the random name picker.
Straight draft: the first pick wins
The playground method has captains take turns: team 1, team 2, team 3, then team 1 again. With nine players rated 9 down to 1 and three teams, team 1 gets 9, 6 and 3 (18), team 2 gets 8, 5 and 2 (15), and team 3 gets 7, 4 and 1 (12). The team that picks first is ahead in every round, and the gap adds up: 6 points between first and last.
Snake draft
Reverse the order every round: 1, 2, 3, then 3, 2, 1, then 1, 2, 3. The team that picked last in one round picks first in the next. The same nine players give 9 + 4 + 3 = 16, 8 + 5 + 2 = 15 and 7 + 6 + 1 = 14: a gap of 2 instead of 6. On the twelve-player test group, snake draft reached the best possible split (25, 26, 26) in every one of the 2,000 runs; only the order of players with equal ratings changed.
The generator sorts players by rating, strongest first, with equal ratings in random order, so two people rated 8 do not always land in the same team.
Greedy
Greedy takes the players strongest first and gives each one to the team with the lowest total so far. It is what a careful organiser does by hand. On the test group it also found a gap of 1 every time; on other lists it can beat snake draft, especially with uneven ratings or teams of different sizes. Both are heuristics: finding the perfectly balanced split is a hard problem in general, but for groups of a few dozen people these two get within a point or two.
Odd numbers, friends and rivals
- Uneven sizes. Thirteen people in three teams means one team of five. The generator makes sizes differ by at most one and, for balanced methods, the totals still come out close; you can compare averages if team sizes differ.
- Keep together. Write "An + Bình" to keep two people together. The pair is placed first as one unit, so it can never be split, and its combined rating counts toward balance.
- Keep apart. Write "Chi, Dũng" under keep apart. Every placement checks the rule. If the rules cannot all be met (three people kept apart into two teams), the generator tries other random orders and then reports which pair it could not separate, instead of silently ignoring it.
Proving it was fair
If people may question the split, turn on Repeatable and keep the seed. The same names, settings and seed always produce the same teams, so anyone can rerun it and check. Choose the seed before seeing the result (a date, a lesson number), or it stops proving anything.
Common mistakes
- Letting captains choose in public. Straight drafts favour the first pick, and the last person chosen remembers it.
- Using balanced methods with made-up ratings. If the numbers are guesses, the balance is a guess too. Random is more honest.
- Re-rolling until you like the result. Then it is not random anymore; decide the method and accept the draw.
- Forgetting the constraints are listed by name. A misspelled name in a keep-apart rule is reported as not on the list.
- Balancing only total skill. A team with all the defenders is not balanced. For important matches, adjust by hand after the split.
To pick one person rather than make teams, the random name picker uses the same unbiased draw.