Split any group into fair, random teams
Whether you are dividing a class into project groups, picking sides for a pickup game, or forming hackathon teams, doing it by hand invites unconscious bias and arguments. This Team Picker shuffles your roster using a proven algorithm and splits it into the number of teams you choose, keeping the sizes as even as possible.
How it works
The tool processes your input in three steps:
Step 1 — Parse: names are split on newlines and commas, trimmed of whitespace, and de-duplicated. Blank entries are silently dropped, so pasting a list with trailing newlines produces clean results.
Step 2 — Fisher-Yates shuffle: starting from the last position in the list, each element is swapped with a randomly chosen earlier element (including itself). The key property of Fisher-Yates is that it produces a uniformly random permutation: every possible ordering of names is equally likely, with no favouritism toward any particular arrangement. This is different from “random sort” approaches that produce biased results due to inconsistent comparison ordering.
Step 3 — Round-robin assignment: the shuffled names are dealt out like cards — name 1 goes to team 1, name 2 to team 2, and so on, wrapping around. Round-robin is optimal for balance: the largest and smallest team sizes differ by at most 1, regardless of how many people are in the pool.
Worked example
Eight names, three teams. After shuffling, the round-robin deal produces:
- Team 1: names 1, 4, 7 (3 people)
- Team 2: names 2, 5, 8 (3 people)
- Team 3: names 3, 6 (2 people)
The maximum size difference is 1 — as balanced as it is possible to be without splitting a person.
Use cases and tips
Classroom groups: paste a class roster and choose how many groups you need. Re-roll if the algorithm produces a grouping where known best friends or rivals land together — each re-roll is fully independent.
Sports and games: for pickup games, entering all attendees and picking two teams is faster and fairer than captains picking alternately, which tends to produce a visible skill-ordering at the end of the draft.
Hackathons and workshops: paste the attendee list and set the number of teams equal to your table count. The balanced sizes mean no team is significantly smaller than others.
Named teams: the tool outputs numbered teams by default. If you want Red, Blue, and Green, assign names to the numbered slots after generation — the tool’s output is a starting point you can relabel freely.
Re-roll as many times as you like: each press of the button is an independent shuffle, so there is no “correct” answer to land on. All processing happens locally in the browser — your name list is never uploaded.