Research
Are Random Teams Actually Balanced?
A random split is fair to every student, but it is not built to be even. In a class of 24 rated 1 to 5, four random teams leave the strongest team's average a full point or more above the weakest's in 58.2% of splits, and the four strongest students land on four different teams only 12.2% of the time. We ran 3,974,246 simulated presses of Wheel Cue's team generator through its real code, worked out the exact odds alongside, and measured which simple fixes actually work.
The short answer
Not reliably, and the more teams you make, the less even they get. A random split makes every arrangement of the class equally likely, and with four or more teams most of those arrangements are uneven.
We modeled a class of 24 with an ordinary spread of ability on a 1-to-5 scale: 3 students rated 1, 5 students rated 2, 8 students rated 3, 5 students rated 4, 3 students rated 5. Then we split it the way the random team generator does: shuffle the list, then deal the names out like cards.
- Four teams of 6: in 58.2% of splits the strongest team's average rating is a full point or more above the weakest team's. Only 14.6% come out close, with all four averages within half a point.
- Two teams of 12: much better: 75.6% close, 6.3% lopsided.
- The four strongest students land on four different teams in only 12.2% of 4-team splits.
- A class of 12 girls and 12 boys comes out 3-3 on all four teams in only 5.9% of splits; some team is 5-1 or 6-0 in 42.9%.
- With 5 pairs of friends and four teams, at least one pair lands together in 70.3% of splits.
Three fixes work with the tool as it is. Dealing each third of the class separately ("tiered dealing") gives a close split 93.9% of the time in three presses. One or two well-chosen trades by hand after a random split give 77.1% and 99.33%. Pressing Generate teams until a split meets a rule you set in advance takes 6.8 presses on average.
Every percentage here is exact, worked out by counting arrangements and checked against 3,974,246 simulated presses through random.js, the file behind every pick on Wheel Cue. Figures with no exact counterpart are marked "simulated".
How uneven a random split gets
The team generator deals the shuffled list round-robin: with four teams, Team 1 gets the 1st, 5th, 9th… names, Team 2 the 2nd, 6th, 10th…, and so on. Every way of dividing the class is equally likely.
To measure balance, add up each team's ratings and take the gap between the strongest team and the weakest. Divided by the team size, the gap is the difference between their averages. In our class of 24, the ratings add up to 72, so four perfectly even teams would each total 18, an average of 3 per player. A gap of 3 points means the averages are half a point apart. A gap of 6 means a full point, such as a team averaging 3.5 against one averaging 2.5.
Show the numbers
| Gap (rating points) | Gap between team averages | Share of splits (exact) |
|---|---|---|
| 0 | 0.00 | 0.42% |
| 2 | 0.33 | 6.6% |
| 3 | 0.50 | 7.6% |
| 4 | 0.67 | 12.7% |
| 5 | 0.83 | 14.5% |
| 6 | 1.00 | 15.7% |
| 7 | 1.17 | 13.5% |
| 8 | 1.33 | 11.1% |
| 9 | 1.50 | 7.9% |
| 10 | 1.67 | 5.1% |
| 11 | 1.83 | 2.8% |
| 12 | 2.00 | 1.4% |
| 13 | 2.17 | 0.54% |
| 14 | 2.33 | 0.18% |
| 15 | 2.50 | 0.04% |
| 16 | 2.67 | <0.01% |
With four teams, the typical gap is 6 points (the median; the average is 6.16). In 17.9% of splits the gap is 9 or more, which puts the two team averages 1.50 points or more apart.
More teams, more lopsided
The number of teams matters a great deal:
| Teams | Close (averages within ½ point) | Lopsided (a full point or more) | Average gap between team averages | Two best on one team | At least one of 5 friend pairs together |
|---|---|---|---|---|---|
| 2 teams of 12 | 75.6% | 6.3% | 0.40 points | 11/23 (47.8%) | 95.9% |
| 3 teams of 8 | 34.4% | 28.6% | 0.73 points | 7/23 (30.4%) | 83.4% |
| 4 teams of 6 | 14.6% | 58.2% | 1.03 points | 5/23 (21.7%) | 70.3% |
| 6 teams of 4 | 2.3% | 92.9% | 1.54 points | 3/23 (13.0%) | 49.96% |
Smaller teams have averages that swing more, since one strong or weak student is a bigger share of a team of 4 than of 12, and more teams give more chances for one to be extreme. With six teams of 4, 92.9% of splits are lopsided and only 2.3% are close.
When every student is different
The 1-to-5 scale is not what makes this happen. Rank all 24 students from 1 to 24 instead: with two teams of 12, the teams' average ranks end up 2.32 places apart on average, and only 28.7% of splits have them within one place of each other.
For four teams we have no exact method for the rank gap, so this is simulated only: across 800,000 simulated splits, the strongest and weakest teams' rank totals differed by 35.95 rank points on average, about 6.0 places per student, and average ranks within one place of each other turned up in 0.60% of them.
Where the strongest students land
Any two particular students, such as the two best players, share a team with a simple probability. Put the first one on a team. Of the other 23 places, 5 are on that same team, so with four teams of 6 the chance is 5/23, or 21.7%. In general it is (team size − 1) / (class size − 1): 11/23 with 2 teams, 7/23 with 3 teams, 5/23 with 4 teams, 3/23 with 6 teams.
The same rule applies to any pair, such as two students who must not sit together. With two teams, it is nearly a coin flip.
The top four, across four teams
A teacher running a review game often wants the four strongest students on four different teams. A random split does that only 216/1771 of the time (12.2%). The most common outcome, at 73.7%, is two of them on one team; in 14.1% of splits one team gets three or all four.
With two teams, the top four split 2-2 only 66/161 of the time (41.0%). The rest are 3-1 (49.7%) or 4-0 (9.3%).
None of this is a flaw in the shuffle. "As evenly as possible" is one particular pattern, and a fair shuffle has no reason to prefer it. To try your own class size and team count, use the simulator below.
Split your own class
Enter your class and the page deals thousands of random splits in this tab, with the same shuffle and round-robin dealing as the team generator. It counts how often the top students end up together and how often a team ends up mostly one group, with the exact value next to each result. (Skill gaps depend on how you rate your class, so the simulator does not estimate them.)
Press Deal the splits to deal 5,000 random splits of 24 people into 4 teams.
Top students are numbered #1 (the best) to #n. Everything runs in this page, and nothing you enter is sent anywhere. Simulated results change a little on every run; the exact values do not.
Mixed groups and friend pairs
The same arithmetic applies to any two groups you want spread across teams: English learners and fluent speakers, two homerooms, or girls and boys. Take a class of 12 in one group and 12 in the other.
- Four teams of 6: every team is 3-3 in only 40000/676039 of splits (5.9%). The most lopsided team is 4-2 in 51.2%, 5-1 in 37.8%, and 6-0 in 5.1%.
- Across team counts, the chance that some team is at least three-quarters one group is 3.9% with 2 teams (9-3 or worse), 38.6% with 3 teams (6-2 or worse), 42.9% with 4 teams (5-1 or worse), 98.3% with 6 teams (3-1 or worse).
Smaller teams are more likely to come out all one group: with six teams of 4, some team is 4-0 in 41.6% of splits, against 5.1% for a 6-0 team with four teams of 6.
Friends end up together
Now give the class 5 pairs of friends you would rather keep apart. Each pair shares a team 5/23 of the time with four teams. Across all 5 pairs, at least one pair shares a team in 70.3% of splits. With two teams that rises to 95.9%. With six teams it is about half (49.96%).
- 2 teams
- 3 teams
- 4 teams
- 6 teams
Show the numbers
| Friend pairs | 2 teams | 3 teams | 4 teams | 6 teams |
|---|---|---|---|---|
| 1 | 47.8% | 30.4% | 21.7% | 13.0% |
| 2 | 72.7% | 51.5% | 38.7% | 24.3% |
| 3 | 85.6% | 66.1% | 51.9% | 34.1% |
| 4 | 92.4% | 76.3% | 62.2% | 42.6% |
| 5 | 95.9% | 83.4% | 70.3% | 49.96% |
| 6 | 97.8% | 88.3% | 76.6% | 56.3% |
| 8 | 99.34% | 94.2% | 85.4% | 66.7% |
| 10 | 99.77% | 97.1% | 90.9% | 74.5% |
| 12 | 99.85% | 98.5% | 94.2% | 80.5% |
It is the same pattern as a repeated name on a wheel (see why random feels rigged): each pair is unlikely to land together, but with several pairs some coincidence becomes likely. If you have a list of pairs to keep apart, expect most splits to need a small correction.
Four fixes, measured
The team generator deliberately does not balance for skill, gender or friendships; it only sees names. Its page suggests generating a split and then moving a couple of people by hand. We measured that advice against three alternatives, for four teams of 6 with the rating mix above.
| Method (4 teams of 6) | Close | Lopsided | Average gap (rating points) | Presses of Generate teams |
|---|---|---|---|---|
| One random split | 14.6% | 58.2% | 6.16 | 1 |
| Random split, then 1 trade by hand | 77.1% | 4.3% | 2.57 | 1 |
| Random split, then 2 trades by hand | 99.33% | 0.01% | 0.84 | 1 |
| Tiered dealing | 93.9% | 0% | 2.11 | 3 (one per tier) |
| Press again until close | 100% (you stop when close) | 0% | 2.46 | 6.8 on average |
| Snake draft (not random) | 100% | 0% | 0.00 | none: drafted by hand |
Press Generate again until the split is close
Each press has a 14.6% chance of producing a close split. You need 6.8 presses on average and 5 or fewer half the time; 20.6% of the time you need more than ten. Add a second condition, such as the top four on different teams, and the chance per press drops to 3.5%: 28.9 presses on average.
There is also a fairness question. If you state the rule before the first press ("no team average more than half a point from another"), every split that meets it is still equally likely. If you keep pressing until a split looks right to you, you are choosing the teams, which the guide to splitting people into teams warns against.
Tiered dealing
Divide the class into three tiers of 8 by ability and deal each tier separately (the steps are below). Each team gets exactly 2 students from every tier, chosen at random.
With four teams, 93.9% of tiered splits are close, none is lopsided, and the gap is never more than 4 points; the average gap is 2.11, against 6.16 for a plain split.
Our rating mix flatters this method: the middle tier is all 3s, so it adds the same to every team. Ranks are the fairer test, and tiering still holds up: the 4-team gap averages 12.44 rank points with tiers, against a simulated 35.95 without. Every student is still equally likely to land on any team.
One or two trades by hand
After a random split, add up each team's ratings and make the single best trade: a student from the strongest team for one from the weakest team whose rating is lower by about half the gap between those two teams. Our figures use the best possible trade, found by checking every pair of students. One trade lifts the close share from 14.6% to 77.1% and cuts the average gap to 2.57. A second trade reaches 99.33%, with an average gap of 0.84. With two teams, a single trade is enough for a close split 99.11% of the time.
With ranks and four teams, simulated only, the average gap goes from 35.95 rank points to 14.73 after one trade and 5.53 after two.
A snake draft, for comparison
In a snake draft, teams take turns picking from a list ranked strongest to weakest, in the order 1, 2, 3, 4, then 4, 3, 2, 1, and so on. It is not random, and the team generator cannot do it. In our setup it gives a gap of 0 with 2, 3, 4 or 6 teams, but only because those give an even number of rounds and every rank is known exactly. With 8 teams of 3 (3 rounds) the gap is 7 rank points, and with real students it is only as good as the ranking. It also produces teams that look chosen, the very objection random teams were meant to remove.
Balanced teams with the team generator, step by step
Everything below works with the random team generator as it is. Leave Split by set to "Number of teams" and set Number of teams (it starts at 4).
Tiered dealing in three presses
- Sort the class roughly into tiers by ability: for 24 students in 4 teams, three tiers of 8. Make each tier a multiple of the number of teams.
- Replace everything in the names box (it starts with sample names) with the top tier, press Generate teams, then Copy teams and paste the result into a document.
- Do the same with the middle tier and then the bottom tier.
- Combine the lines with the same team name: the three Team 1 lines (or the three Red lines, if you named the teams), and so on.
The order you paste names in does not matter, because the list is shuffled first. If a tier does not divide evenly, the extras go to the first teams; to rotate them, name the teams in Team names (optional) and change the order for each tier: Red, Blue, Green, Gold, then Blue, Green, Gold, Red.
Mixes and pairs, by the same trick
- Even mix of two groups. Run each group as its own batch. With 12 in each and 4 teams, every team gets exactly 3 of each.
- The top students on different teams. Deal just the top four as a batch of their own, with 4 teams, then everyone else as a second batch. Each team gets exactly one of the four.
- Two students who must not be together. Put them in the same batch of exactly as many names as there are teams. Every team gets one name from that batch, so the two always land on different teams.
A batch with fewer names than teams makes the generator lower Number of teams to match, so check that box before the next batch. Do the batches on your own screen before class and show students only the combined teams.
Then one or two trades
After the split, check the few things you care about. For skill, make the one or two trades described under One or two trades by hand above. For a friend pair or a team that is mostly one group, trade one of them for a student of similar ability on another team, so the skill balance does not move. That matches the guide to splitting teams: random first, then the smallest correction that works.
Once the teams are set, if they will take turns on a name wheel, see how many spins it takes until everyone gets a turn.
How to check these numbers
The simulation script and its raw results are linked at the top of the page. Save the script and random.js in one folder and run node are-random-teams-balanced.mjs random.js results.json with Node.js 18 or later. It took about 110 seconds on our PC. The exact values will match this page; the simulated values will differ in the last decimals.
How the script works:
- It loads the real random.js and copies the team generator's code:
CueRandom.shuffle, then round-robin dealing. A shuffle uses one random draw per name, minus one (23 for a class of 24), so the 62,607,658 simulated random draws under the title count draws, not presses. - Exact values come from counting arrangements in whole numbers: a dynamic program over teams for rating gaps, all 2,704,156 possible Team 1s for the two-team rank gap, hypergeometric counts for top students and group mixes, and inclusion–exclusion for friend pairs. Tiered dealing and hand trades are enumerated in full.
- Each of the 97 simulated-vs-exact checks allows four standard errors, and all 97 agreed; the largest deviation in this run was 2.35 standard errors.
- The four-team rank gap for a plain random split, and after trades, has no exact counterpart, so the script checks an exact property instead: Team 1's rank total averages 75 with a standard deviation of 15 (simulated 75.01).
The shuffle itself is tested in the fairness report, which runs millions of draws through the same random.js.
How this research was made
The results on this page come from a simulation that runs real draws through random.js — the same file that picks every winner on Wheel Cue — and from the exact formula wherever one exists, and the two are checked against each other. Simulated results are labelled as simulations: they are not usage figures for this site.
The script and its raw output are published with the page, so anyone can re-run the study. The raw results (the JSON file) are free to reuse under the CC BY 4.0 license, with credit to Wheel Cue; the article text is not covered by that license. If you find a mistake, tell us: corrections are dated in the changelog. How the research is made →
Frequently asked questions
Does the random team generator balance teams by skill?
No. It only sees names, so it shuffles them and deals them out evenly by number. In a class of 24 rated 1 to 5, four random teams come out close in skill only 14.6% of the time. Deal each ability tier separately, or make one or two trades by hand.
What are the chances the two best players end up on the same team?
It is (team size − 1) / (class size − 1). In a class of 24, that is 5/23 (21.7%) with four teams and 11/23 (47.8%) with two.
Is it fair to press Generate again until the teams look even?
Only if you state the rule before the first press and stop at the first split that meets it. It is also slow: with four teams of 6 it takes 6.8 presses on average. Tiered dealing takes three presses and gives a close split 93.9% of the time.
How do I make sure two students are not on the same team?
Put the two in a batch of exactly as many names as there are teams and run it through the random team generator on its own: every team gets one name from it, so the two cannot land together. Then deal everyone else and combine the teams. In a single random split into four teams of 6, a given pair shares a team 5/23 of the time (21.7%).
How do I make balanced random teams for a class?
Sort the class into ability tiers, each a multiple of the number of teams. Run the random team generator once per tier, then combine the Team 1s, the Team 2s, and so on. With four teams of 6, that gives a close split 93.9% of the time.
Keep reading
Split your class in one click
Paste the names, choose the number of teams, and deal. Run it once per tier for teams that come out much closer in skill.