A little help goes a long way. Find a tool/

Generators FIELD NOTES · 4 MIN READ

Shuffle, Then Deal: How Random Teams Stay Fair

Fair team splits in two steps: a Fisher–Yates shuffle that favors no ordering, then round-robin dealing that guarantees sizes within one.

Fair teams come from two cheap steps: shuffle the names so every ordering is equally likely, then deal them out like cards, one to each team in turn. Neither step is clever on its own — the fairness comes from the pairing, because a truly random order plus a fixed dealing rhythm leaves no room for favoritism to hide.

Step one: a shuffle with no favorites

The generator uses the Fisher–Yates shuffle: walk the list from the last position to the first, swapping each name with a randomly chosen one at or before it. Done exactly this way, every one of the possible orderings of your list has an equal chance of being produced — the property that makes everything downstream fair. (Naive shuffles that pick any random slot for every pass, including slots already behind the pointer, do not have this property; they over-weight some arrangements.) The shuffle is seeded optionally, so the same seed reproduces the same split — the mechanics are the same ones covered in random sampling explained.

Step two: deal round-robin

The shuffled names are then dealt like a card game: the first name to Team 1, the second to Team 2, and so on, wrapping back to Team 1 after the last team. A real run — eight names, three teams, seed 7 — produced Team 1: Dave, Carol, Gina · Team 2: Hank, Frank, Alice · Team 3: Eve, Bob, sizes 3, 3, 2. That near-even result is guaranteed, not lucky: with n names dealt to k teams, sizes can only be ⌈n/k⌉ or ⌊n/k⌋, so they never differ by more than one, and no retry loops or manual nudging are ever needed.

Two ways to ask, one way to answer

You can specify the number of teams ("make 3 teams") or the team size ("4 per team") — the tool derives whichever you left out. Team size mode computes the team count as the ceiling of people divided by size: our real run of ten people at four per team produced three teams with sizes 4, 3, 3 (F, J, D, A / E, I, G / C, H, B). The derived count never exceeds your headcount, and if you explicitly request more teams than names, the tool refuses rather than minting empty teams. Names can arrive one per line or comma-separated, and duplicates are dealt as separate people — two Bobs occupy two slots.

Random is fair, not smart

The split is fair in one precise sense: every person's chance of landing on any given team is equal, and every full assignment of names to teams is equally likely. It is not skill-balanced — random can put all three strong players on one team, and over a single split that's just bad luck working as designed. If strength balance matters, the fixes are human: captain-picks or a snake draft. One structural note: straight round-robin dealing hands Team 1 the first pick of every round, but because the order was fully shuffled first, there is no stable advantage to inherit — rerun with a new seed and the "advantaged" slot changes hands.

Random is fair, not smart — and it has no memory of relationships. The split gives every person an equal chance of landing with any teammate, but it cannot respect constraints, because there are none: if two people must not be on the same team (same household, conflicting schedules), the only supported fix is to edit the list before splitting or swap members by hand afterward. Tools built for constrained pairing exist — Secret Santa pairing takes an exclusion list — but the team generator deliberately stays simple: one shuffle, one deal, every name placed.

Try it yourself

Paste your roster into the Random Team Generator — choose teams-by-count or people-per-team, add a seed if the split needs to be verifiable, and get balanced teams in one pass. A plain list shuffle or item pick is the Randomizer's job, and once teams exist, the Tournament Bracket Generator takes over for knockout play.

Frequently asked questions

How is this different from a plain list randomizer?
A randomizer shuffles a list or picks a few items from it and stops there. This tool goes one step further: it shuffles and then deals every name into labeled teams whose sizes are guaranteed to differ by at most one.
Will team sizes always be within one?
Yes, and it is guaranteed by the dealing method rather than luck: dealing n names round-robin to k teams produces sizes of either the ceiling or the floor of n/k — nothing in between, with no retries needed.
Can the same person end up on two teams?
No. Each name is dealt exactly once, so every person belongs to precisely one team — even duplicate names are treated as two separate people, not one person appearing twice.
Is Team 1 favored by the dealing order?
Round-robin dealing gives Team 1 the first pick of each round, but the dealing order comes from a full shuffle, so which names land in which slot is random. Rerun with a new seed and the advantage moves — there is no permanent favorite.
What does the seed do?
It makes the split reproducible: the same names with the same seed always produce the same teams. That is useful when a split needs to be auditable, shared, or settled after the fact.