Team Picker

Shuffle a list of names into balanced teams. Choose either the number of teams or the size per team; teams come out within 1 member of each other. Optional team names and one-click copy.

Loading…

All processing runs in your browser — no files or inputs are uploaded to a server.

How to use

Paste one name per line on the left. Pick a mode on the right: **By team count** splits the list into N teams of roughly equal size (a 10-person list into 3 teams gives 4-3-3); **By team size** packs people in groups of K (a 10-person list at K=4 gives 4-4-2). The shuffle uses Fisher-Yates over the name list, then assigns either round-robin or sequentially.

Optionally name your teams by entering one team name per line — first name maps to first team, second to second, and so on. Empty team-names fall back to `Team 1`, `Team 2`, etc. The **Copy all** button gives you the full result as a plain-text list ready to paste into Slack, an email, or a sticky note.

Examples

PE class — 12 students into 3 teams

Input
12 names
mode: by team count
teams: 3
team names: Red, Blue, Yellow
Output
Red    (4): Alice, Frank, Henry, Kate
Blue   (4): Bob, Grace, Ivy, Liam
Yellow (4): Charlie, Dave, Eve, Jack

When the list size divides evenly by team count, every team has the same size. The Fisher-Yates shuffle means anyone could end up anywhere — useful for breaking up cliques in PE class, project groups, or game-night.

Discussion groups of 4

Input
15 names
mode: by team size
size: 4
Output
Team 1 (4): Eve, Bob, Liam, Grace
Team 2 (4): Henry, Jack, Alice, Dave
Team 3 (4): Charlie, Frank, Kate, Ivy
Team 4 (3): Mike, Nora, Owen

When the list does not divide evenly, the last team is short. For workshops or facilitated discussions where 4 is the target group size, this is usually fine — the short team gets a slightly easier role or merges with another at the facilitator's discretion.

FAQ

Are the splits guaranteed to be size-balanced?

In **by team count** mode, yes — round-robin assignment of N people into K teams gives each team `floor(N/K)` or `ceil(N/K)` members, so the spread is at most 1. In **by team size** mode the last team gets whatever is left over (so for 15 people in groups of 4, the last team has 3). If you need perfectly equal teams every time, choose by-team-count and ensure your list size is divisible.

How random is the shuffle?

It uses Fisher-Yates with `Math.random()`. Every permutation of N names has equal probability `1/N!`, so each individual is equally likely to land in any team. `Math.random()` is not cryptographically secure but is uniform enough that no party game can detect bias — for that you would need adversarial repeat sampling at large N, which is not a realistic use case.

Can I split into uneven teams on purpose (e.g., a 5-vs-3)?

Not directly. The tool aims for balance. For a deliberate 5-vs-3 split with 8 people, the simplest workaround is to use by-team-size with size 5 — you get a team of 5 and a remainder of 3. For more elaborate splits (5-2-1 etc.) shuffle in by-team-count mode with 3 teams, then manually move people in the output.

Does this account for skill, role, or seniority balancing?

No — the tool treats every name as identical. If you need skill-balanced teams (e.g., spread strong players across teams in a pickup game, or one senior on each project team), do an initial manual pre-sort by tier, then shuffle each tier separately and round-robin the tiers across teams. The tool is designed for the case where all participants are interchangeable.

Related tools