Coinroll

Random team generator

8 names

One per line · *Name = seeded player, spread across teams

Number of teams / People per team

How the split works

The list is shuffled with a cryptographic random generator, then dealt like cards: each name goes to one of the smallest teams. Team sizes never differ by more than one person, whichever mode you pick.

Number of teams gives exactly that many teams, never an empty one. People per team works out how many teams you need and spreads the remainder, so 10 people in teams of 4 become 4, 3 and 3 rather than 4, 4 and 2.

Balancing skills with seeds

A purely random split can put all the strong players together. Mark them with * and they are dealt first, one per team in a random order, before everyone else fills the gaps. The same trick keeps group leaders, older students or two inseparable friends on different teams.

Where it helps

Classroom groups and lab pairs, five-a-side football, pub quiz teams, workshop break-out rooms, or picking sides for a board game night.

How the draw works

Every result comes from crypto.getRandomValues, your browser's cryptographic random generator, with rejection sampling so that every slice, face and number has exactly the chance it shows. The winner is decided before the animation starts; the spin only reveals it.

Questions and answers

Are the teams balanced?

In size, always: sizes differ by at most one person. For skill, mark the strongest players with * and they are spread evenly across the teams.

Number of teams or people per team: which should I use?

Use Number of teams when you have a fixed number of tables, courts or rooms. Use People per team for pairs (2) or groups of 3 or 4; the remainder is spread, never left as a tiny last team.

How do I keep two people apart?

Put a * before both names. Seeded players never share a team while there are no more of them than teams.

Can I name the teams?

Yes. Type names separated by commas, such as Red, Green, Gold. Unnamed teams are numbered.

Is my list stored anywhere?

Only in this browser (localStorage), so it is there next time. Nothing is sent to a server.