HandyTools Hub

👥 Team Generator

Paste names, shuffle, and split into fair random teams.

🔒 100% client-side — names are never stored

Paste a list of names, choose either how many teams you want or how many people each team should hold, and the tool deals a fresh random split. It handles the housekeeping — trimming whitespace, skipping blank lines, and removing duplicates — so the roster you paste is the roster that gets split.

How Teams Are Built

Two steps run in sequence. First the input is cleaned: each line is trimmed of surrounding spaces, empty lines are dropped, and a repeated name is skipped so the first occurrence wins and the remaining order is preserved. Second, the cleaned list is shuffled with a Fisher-Yates shuffle — the standard algorithm under which every ordering is equally likely when the random source is uniform — and dealt round-robin: the first person to team 1, the second to team 2, and so on, wrapping back to team 1 after the last team. The random source is Math.random. It is perfectly adequate for grouping people, but it is not cryptographic and should not be used where an adversary benefits from predicting the draw.

Worked Example: Ten Names, Three Teams

Suppose you paste ten names and choose three teams. The remainder of 10 divided by 3 is 1, so one team receives an extra member and the sizes are 4, 3, and 3. One possible deal looks like this:

  • Team 1: Ada, Grace, Linus, Margaret
  • Team 2: Alan, Barbara, Dennis
  • Team 3: Ken, Radia, Tim

The names appear in a random order rather than alphabetically, and no name appears twice. Press Re-shuffle to reshuffle the same ten names and get different lineups with the same 4/3/3 shape. Because the draw is random, repeating it is the normal way to explore alternatives before committing to one.

Number of Teams vs Team Size

The two modes answer different questions, and the distinction matters when the roster is not perfectly divisible.

You chooseThe tool computesExample with 10 names
Number of teamsDeals round-robin into exactly N teams4 teams gives sizes 3, 3, 2, 2
Team sizeTeams = ceiling of names divided by size, then dealsSize 4 gives three teams of 4, 3, 3

In size mode the actual team may be smaller than the requested size when the list does not divide evenly, but sizes still never differ by more than one. Count mode requires at least one person per team; size mode requires the requested size to fit within the list at least once. Both modes accept only whole numbers of at least one.

What Counts as a Name

Each non-blank line is one person. Leading and trailing spaces are stripped, so Ava and Ava collapse to the same entry and only the first is kept. Because matching is exact after trimming, Ava and ava are two different people and both survive the cleanup. Commas are not separators — a line reading Ava, Ben becomes a single team member literally named “Ava, Ben”. If your roster lives in a comma-separated column, split it into one name per line before pasting.

When to Use It and When Not To

This is built for classroom project groups, sports sides, workshop breakouts, and party game teams. It is not the right choice when the split must satisfy constraints: there is no way to keep particular people together or apart, no balancing by skill or role, no fixed captains, and no seed for a reproducible draw. It also does not persist anything, so if you need a record of the result, copy the teams before closing the tab. The whole operation runs locally in your browser, so a list of real names never leaves the page.

Practical Tips

A few habits make the tool fit real rosters more smoothly. Keep one name per line and remove titles, because “Dr. Ada” and “Ada” are different entries and will both appear. If you need to keep a pairing together — a driver and a navigator, for instance — list them as a single line like “Ada & Grace” so they always land on the same team. When the exact sizes matter more than the number of groups, use size mode and accept the occasional short team rather than count mode, which can leave a team with only one person. For repeated rounds at a workshop, paste the same list, re-shuffle between rounds, and copy each result; nobody stays anchored to the same group because the shuffle is a full permutation, not a rotation. If you want a reproducible draw for record-keeping, write down the team lines that were produced, since there is no seed to replay.

Cleanup is destructive in one direction only: duplicates are dropped silently, so check the input if you expected a repeated name to appear twice. And because matching is line-based and exact, it is worth previewing the roster before generating. A common failure is pasting a spreadsheet column that still includes a header row such as “Name”; the header becomes a team member and shifts every team boundary. Delete headers and trailing notes first. If your list uses tab-separated columns, paste it into a text editor, replace the tabs with spaces, and keep only the name column.

Frequently Asked Questions

Does it use a cryptographically secure shuffle?

No. The shuffle is Fisher-Yates driven by Math.random, which is fast and uniform enough for classroom groups, game nights, and breakout rooms but is not a cryptographic source. Do not use it to draw security tokens or anything with money on the line.

How are team sizes decided when the names don't divide evenly?

The shuffled list is dealt round-robin, so the remainder is handed out one extra member per team starting from team 1. Ten names in three teams always produces 4, 3, and 3, never 5, 3, and 2.

What does team-size mode do when the size doesn't divide the list?

It computes the number of teams as the ceiling of names divided by size, then deals. Ten names at a size of 4 creates three teams of 4, 3, and 3, so an actual team can be smaller than the size you asked for.

Are blank lines and duplicates removed?

Yes. Each line is trimmed, blank lines are dropped, and a name that already appeared is skipped while the first occurrence wins. Matching is exact after trimming, so Ava and ava are treated as two different people.

Can I create more teams than I have people?

No. Count mode rejects a team count larger than the name list, and size mode rejects a team size larger than the list. Both conditions show an inline error instead of producing empty or one-person teams.

What does Re-shuffle do?

It reruns the current split mode with the current inputs and produces a fresh random draw from the same cleaned roster. It does not change the team count or size, and it does not remember anything after you close the tab.

Reviewed by the HandyTools Hub team · Last updated