Random Team Generator

Split a list of names into random teams with a cryptographically fair Fisher-Yates shuffle. Runs entirely in your browser.

The draw happens locally in your browser. Your name list never leaves your device.

Each line is one person; blank lines are ignored.

How It Works

Type one name per line, pick either a team count (2–10) or a fixed team size, and the tool deals the groups immediately: the list is shuffled first, then walked cyclically so each person takes one card. Every change — a name, the mode, the number — re-deals right away, and the Reshuffle button rolls a completely new layout.

Fisher-Yates with Web Crypto
The shuffle is the classic Fisher-Yates (Knuth) algorithm: walking the array once, each position swaps with a uniformly random earlier one. Randomness comes from crypto.getRandomValues with rejection sampling — values that would skew the distribution near the top of the 32-bit range are discarded and redrawn — so the draw is cryptographically unbiased, not just approximately random.
Round-robin dealing
After shuffling, name 1 goes to team 1, name 2 to team 2, and so on, wrapping around. Because the deck order is already random, dealing in fixed rotation produces groups that are individually unpredictable and jointly as equal in size as the numbers allow: no team can end up with two more people than another.
Why shuffle-then-split beats picking
Pulling people into teams one at a time with a fresh random choice tends to produce lumpy group sizes and depends on the order teams are filled in. A single unbiased shuffle followed by cyclic dealing removes both problems, and it is exactly how you would do it with a deck of cards.

Frequently Asked Questions

Is the shuffle actually fair?

Yes. Names are dealt by a Fisher-Yates shuffle driven by crypto.getRandomValues — the browser's cryptographic random source — so every permutation is equally likely, and the random integers are drawn with rejection sampling to avoid the modulo bias that shortcut shuffles introduce. After shuffling, round-robin dealing guarantees team sizes differ by at most one person.

How does the members-per-team mode work?

You fix the team size, and the tool computes how many teams that implies: 11 names with teams of 4 becomes 3 teams, with the last one holding the remainder. The number-of-teams mode works the other way around — you fix the count and the sizes come out as even as possible.

What if two people have the same name?

The tool still works — duplicates are treated as separate people because each line is its own entry — but it shows an inline warning so you can confirm it is not a copy-paste mistake. If they are real duplicates, adding an initial or short ID (Sam K, Sam R) keeps the printed teams unambiguous.

Can I lock a person to a team or get my old draw back?

No. There are no locks, no history and no save feature: each reshuffle is a fresh, independent draw, and the previous layout is gone the moment you deal a new one. If a draw is good, copy or download it before shuffling again.

Is anything uploaded to a server?

No. Shuffling is plain JavaScript with the Web Crypto API running inside your browser tab. Your name list never leaves the device, and nothing is stored — reloading the page clears it.