Team Assigner
Randomly split a list of names into balanced teams.
Overview
The Team Assigner takes a list of names and randomly splits them into balanced teams. Set the number of teams (or the team size) and the tool deals names round-robin into the team buckets, producing groups that differ in size by at most one. Optional pre-assigned captains keep designated leaders on specific teams.
The tool is aimed at PE teachers splitting a class, conference organisers running team activities, scrum masters arranging temporary squads and party hosts setting up trivia tables. Long-tail searches like "random team generator balanced", "split names into n teams online" and "team picker for sports class" all resolve here.
How it works
The full list of unassigned names is shuffled with a cryptographic Fisher-Yates pass — bytes drawn from the OS random source, rejection-sampled to unbiased integers. The shuffled list is then dealt round-robin into the chosen number of team buckets, the same way you would deal cards in a poker game. This deal produces team sizes that differ by at most one, even when the total does not divide evenly.
Pre-assigned captains are placed first into their teams before the shuffle deals the remainder, so the captain's team always contains them. A "balance by score" option accepts a number per name (skill rating, experience level) and uses a greedy algorithm — sort by score descending, assign each name to the currently weakest team — to keep total team scores roughly equal.
Examples
10 names, 2 teams → two teams of 5
11 names, 3 teams → 4, 4, 3
With captains Alice and Bob → Alice's team and Bob's team built around them
Skill-balanced 3 teams → totals within a few points of each other
FAQ
Are the teams really balanced?
By count, yes — team sizes differ by at most one. By skill, the greedy algorithm produces near-optimal balance for most inputs but is not guaranteed perfect.
Can I pin people together?
Yes. Mark a pair as "always same team" and the algorithm keeps them grouped before the rest is dealt. Use sparingly to avoid making the constraint unsolvable.
What if some names should be on different teams?
Use the "always different teams" constraint. The tool retries the shuffle until the constraint is satisfied.
Can I export the teams?
Yes. Copy as plain text, Markdown or CSV. The Markdown export renders as a tidy grouped list.
Is the shuffle uniform?
The cryptographic Fisher-Yates pass produces a uniformly random permutation of the unconstrained names, so within the balance constraints the assignment is fair.