Skip to content

Random Team Generator

Updated:

Enter a list of names and this random team generator splits them into fair teams instantly — choose the number of teams or people per team, balance total skill per team, and copy the result with one click.

Split a List of Names into Random Teams

Input Fields
Comma-separated team names, e.g. "Sharks, Wolves". Names left empty fall back to Team 1, Team 2…
If enabled, the result will update automatically when you change any value.

Team Generator Formula

Formula
\[ \text{base} = \left\lfloor \frac{n}{T} \right\rfloor, \quad \text{extra} = n \bmod T, \quad s_i = \text{base} + \begin{cases} 1, & i \le \text{extra} \\ 0, & i > \text{extra} \end{cases} \] \[ T = \left\lceil \frac{n}{P} \right\rceil \quad \text{(when splitting by people per team)}, \qquad \Delta = S_{\max} - S_{\min} \]

Where:

  • \(n\) — number of people in the list
  • \(T\) — number of teams
  • \(s_i\) — size of team \(i\) (sizes differ by at most 1 person)
  • \(P\) — desired people per team, when splitting by team size
  • \(S_{\max}\), \(S_{\min}\) — highest and lowest team skill totals; \(\Delta\) is the reported skill spread

The first line guarantees that team sizes are as even as possible: everyone gets \(\text{base}\) members, and the first \(\text{extra}\) teams each receive one more. The skill spread \(\Delta\) tells you how far apart the strongest and weakest teams are; with skill balancing on, the generator tries to push \(\Delta\) toward 0.

Team Generator – Calculation Example

Example: six people with skill ratings — Alice 9, Bob 7, Carol 8, Dan 5, Eve 6, Frank 4 — split into 3 teams with the names Sharks, Wolves, Eagles, with Balance by skill ticked (the default values of the calculator).

\[ n = 6, \quad T = 3 \quad \Rightarrow \quad \text{base} = \left\lfloor \tfrac{6}{3} \right\rfloor = 2, \quad \text{extra} = 0 \Rightarrow s_i = 2 \]

\[ \text{total skill} = 9 + 7 + 8 + 5 + 6 + 4 = 39, \quad \text{fair share} = \tfrac{39}{3} = 13 \]

Sorted from highest to lowest and dealt to the team with the lowest running total, the pairing becomes \(9+4\), \(8+5\), \(7+6\):

\[ 9 + 4 = 13, \quad 8 + 5 = 13, \quad 7 + 6 = 13 \quad \Rightarrow \quad \Delta = 13 - 13 = 0 \]

Result: Sharks — Alice (9), Frank (4); Wolves — Carol (8), Dan (5); Eagles — Bob (7), Eve (6). Each team has 2 people and a total skill of exactly 13, so the skill spread is 0 — a perfectly balanced draw.

How to use the calculator

  1. Type your names into the Names box, one per line. To use skill balancing, add a number after a comma or semicolon, e.g. Alice, 9 (a dot works for decimals, e.g. Alice, 8.5). Blank lines are ignored.
  2. Choose Split by: Number of teams or People per team. The matching field (Number of teams or People per team) appears below it.
  3. Optionally enter comma-separated Team names (optional), such as Sharks, Wolves, Eagles. Any team without a name falls back to Team 1, Team 2…
  4. If your names carry skill numbers, keep Balance by skill ticked to even out the total skill per team; untick it for a purely random draw.
  5. Read your teams under Your Teams, along with the number of teams, people per team, and the skill spread. Press Shuffle again for a fresh draw or Copy as text to put the whole list on your clipboard.

What is a random team generator?

A random team generator takes a list of names and divides it into teams without any bias — the digital equivalent of drawing names out of a hat, but faster and fairer. It is handy for splitting a class into project groups, organizing a sports pick-up game, assigning workshop tables, or creating random pairings for a tournament or secret Santa.

Fairness here means two things. First, no person and no split is favored: the list is shuffled with the Fisher–Yates algorithm using cryptographically secure random numbers (crypto.getRandomValues), so every possible division into teams is equally likely. Second, the teams are even in size: sizes never differ by more than one person, so nobody ends up on a lonely team of one while others play in a crowd.

The optional skill balancing adds a third layer of fairness. Each person can carry a number — a rating, a handicap, a score from last week, a Ping-Pong ranking — and the generator deals people so that the totals per team come out as close as possible. People are sorted from the highest skill to the lowest, and each one joins the eligible team with the smallest running total. The Skill spread value in the results (the difference between the strongest and weakest team) tells you how well it worked: 0 means perfectly even totals, and small values mean the match should be competitive.

Note that with skills turned on the draw is only partially random: team sizes and evenness are guaranteed, and the totals are balanced, but a purely random split is no longer the goal. If you want a completely unpredictable draw instead — like a random wheel spinner or a coin flip — untick the balancing box, or try our dice roller for quick random decisions.

Limitations and practical tips

  • The list accepts 2 to 200 names, up to 120 characters per line. Skill numbers must be between 0 and 1000 and can use a decimal point.
  • Names without a skill number count as 0 in the totals. If you mix named skills and plain names, the spread can only be so small — give everyone a number for the best results.
  • Skill balancing is a fast greedy method, not an exhaustive search. For everyday lists it lands on the balanced split, but for very tricky combinations of numbers a mathematically perfect split may exist that the calculator misses by a hair.
  • When you split by People per team and the list does not divide evenly, the last team simply gets the leftover people — the results note mentions this explicitly.
  • Teams keep their members until something changes: editing a name, changing the split, or pressing Shuffle again produces a new draw. This lets you copy or screenshot a result without it changing under you.
  • Because the shuffle comes from the browser's cryptographic random source, the draws are not reproducible, and no name list is stored anywhere — everything happens locally in your browser.
  • For single winners rather than teams — picking one name from a hat, choosing who goes first — a coin flip or a random drawing tool fits better than team splitting.

Frequently Asked Questions

How do I randomly split a list into teams without a tool?

Write each name on a slip of paper, put the slips in a hat, and draw them one at a time: the first slip starts team 1, the next one team 2, and so on, cycling back to team 1 when you run out of teams. This "deal in rounds" method keeps sizes within one person of each other. Write down the order of the draw so nobody can accuse you of favoritism, or ask a neutral person to pull the slips.

Is the shuffle really random and fair?

Yes. The generator uses the Fisher–Yates shuffle powered by your browser's cryptographic random source (​crypto.getRandomValues), the same quality of randomness used for security tasks. Every possible division into teams is equally likely — no name, position, or team is favored. Note that with skill balancing switched on the draw is intentionally only partially random, because the goal shifts from unpredictability to even team strength.

What is a good skill spread value?

The skill spread is the difference between the strongest and weakest team totals. 0 is perfect — identical totals — while a spread small enough not to matter depends on your ratings: with skills around 5–10, a spread of 1–2 usually still gives a competitive match, but with ratings around 100 the same spread is negligible. If the spread looks large, add skill numbers to people who don't have them, since missing numbers count as 0.

What happens if the list doesn't divide evenly?

Nothing breaks — the leftover people are dealt out first. When you split by a fixed number of teams, sizes never differ by more than one, so with 10 people in 3 teams you get sizes of 4, 3, 3. When you split by people per team, the last team gets whatever remains: 10 people at 3 per team makes 4 teams, the last with just 1 person, and the result notes say so explicitly. If you want to avoid a tiny leftover team, split by number of teams instead.

Can I use this for secret Santa or assigning who goes first?

For gift exchanges it works well if you set people per team to 2 — each pair of names then indicates who gives to whom, though remember each pair "gives to each other," which is less secretive than a full chain draw. For picking a single winner, presenter, or who goes first, team splitting is the wrong tool — a random name picker or coin flip is faster and fits the job better.

Why do I keep getting the same or very similar teams when balancing by skill?

That's expected. With balancing on, people are sorted by skill and each one joins the team with the lowest running total, so the structure of the split is largely fixed by the numbers themselves — only the order among equal skills and the team assignment order vary. If you want every draw to feel completely different, untick "Balance by skill" for a purely random deal.

Can I split an odd number of people into teams of 2, like tournament pairs?

Yes, but plan for the leftover. With 9 people at 2 per team you get 4 teams plus a final team of 1, since the last team absorbs what remains. If a lone "team of one" is useless for your activity, either remove one name (the classic bye in tournament brackets), add a latecomer to even the count, or lower the bar by splitting by number of teams so sizes come out as even as possible (e.g., 9 people into 3 teams of 3).

Leave a Reply

Your email address will not be published. Required fields are marked *