Team Generator
Turn a roster into random or skill-balanced teams. Set the team count or the team size, spread leaders, keep people together or apart, then print or export.
Selections are generated locally in your browser using the Web Crypto API when available. The result is chosen before the animation starts, so how the animation looks can never change what is picked.
Loading the team generator…
What is the Team Generator?
The Team Generator splits a list of people into teams and shows the result as cards you can rearrange. Three distribution modes cover the usual needs: equal headcount, fully random sizes, and score balancing for when a fair split matters more than a fast one.
It also handles the human constraints that make manual team-picking slow — the two people who must be on the same team, the two who really must not be, and the handful of experienced members who should be spread across the teams rather than clustered.
How to use it
- Paste your participants, one per line. Add a score with a colon — “Ava: 8” — if you plan to balance by skill.
- Mark leaders with an asterisk: “*Ava: 8”.
- Choose whether to split by number of teams or by people per team.
- Pick a distribution mode: equal numbers, fully random, or balance by score.
- Add keep-together and keep-apart rules if you need them, one group per line.
- Press “Create teams”, then drag members between cards or use the ← → buttons to adjust.
How the random selection works
Participants who must stay together are merged into a single unit first, using a union-find pass over the names. Those units are then shuffled with Fisher-Yates and dealt out: in equal mode each unit goes to the smallest team; in score mode units are sorted by average score, highest first, and each goes to the team with the lowest running total; in random mode each unit goes to a uniformly chosen team. Keep-apart rules filter the candidate teams before the choice is made, and ties among equal scores are broken by the earlier shuffle, so equally rated players do not always land on the same side.
The full algorithm — including the rejection-sampling step and the wheel stop-angle calculation — is written out on the methodology page.
Practical examples
- Splitting a PE class of 28 into four teams of seven in one press.
- Building balanced five-a-side sides from player ratings, with the two strongest kept apart.
- Creating project groups where each group gets exactly one experienced member.
- Dividing a workshop into breakout groups of four, with a colleague pair kept together.
- Re-drawing teams weekly so the same people do not always play together.
Available options
- Split by team count or by team size.
- Equal, fully random, or score-balanced distribution.
- Leader spreading, keep-together groups and keep-apart pairs.
- Numbered names, suggested names, or your own team names.
- Drag and drop, plus keyboard buttons for the same moves.
- Team totals and averages, a printable sheet and CSV export.
Privacy
Rosters usually contain real names, so nothing is uploaded. Everything you type stays in this browser tab. There is no account, no upload step and no server-side copy of your list: the draw runs in JavaScript on your own device. Nothing is written to browser storage unless you explicitly save a list or tick the option to keep your draw history, and both can be cleared at any time from the privacy page.
Full details are in the privacy policy, which also has a button that deletes everything this site has stored in your browser.
Fairness and limitations
Equal mode guarantees that team sizes differ by at most one, unless a keep-together group forces otherwise — in which case the tool tells you. Score balancing is a greedy algorithm: it produces good, quick splits and it will usually get the totals close, but it does not search every possible arrangement and it cannot promise the optimal split. Nor can any score capture how a team actually plays. Treat the numbers as a starting point, then move people around with the arrows or by dragging.
Frequently asked questions
How do I add skill scores?
Write them after a colon or an equals sign: “Ava: 8” or “Ava = 8”. Any entry without a score is treated as zero, and scores only affect the “balance by score” mode.
What if my keep-together and keep-apart rules conflict?
The generator satisfies what it can and lists the rules it could not meet underneath the teams. It never loops indefinitely trying to solve an impossible set of constraints.
Can I have more teams than people?
Yes, though you will get empty teams and a warning saying so.
How do I move someone after the draw?
Drag their row onto another team card, or use the ← and → buttons in their row — those work with a keyboard and a screen reader.
Does the same person always end up as a leader?
Leaders are the entries you marked with an asterisk. They are shuffled, then dealt one per team, so which team each leader lands on changes every draw.