Random Group & Team Generator

Paste a roster and split it into fair, random, size-balanced groups or teams — for group projects, breakout rooms, sports, standups and events. Unbiased crypto shuffle, built in your browser.

Roster

Blank lines and surrounding spaces are dropped automatically. Two people can share a name, so duplicates are kept by default.

Off by default — only turn on if a repeated name is genuinely the same person entered twice.

Saves your list in this browser (localStorage) so you don't re-type it next session. Never uploaded.

Split

Cosmetic only — labels never change the math.

Result

Unbiased shuffle — Fisher–Yates + crypto RNG (rejection-sampled, no modulo bias)
Names in roster (N)
Groups (G)
Group sizes
Even split?

Random Group & Team Generator — guide & how to use

What it does

This free random team generator takes a list of names (a class roster, a meeting attendee list, a sports squad) and splits it into fair, random, size-balanced groups. Choose how many groups you want — or how many people per group — and it deals everyone out with a provably unbiased shuffle. Save your roster on the device, reshuffle in one click for a fresh draw, and copy or download the result as CSV. Everything runs in your browser; nothing is uploaded.

How to use it

  1. Paste your roster — one name per line (commas and tabs also work). Blank lines and stray spaces are dropped.
  2. Pick a split mode: Number of groups (e.g. 4 breakout rooms) or People per group (e.g. teams of 5).
  3. Choose a label scheme (Group 1…, Team 1…, or Group A…). Labels are cosmetic and never affect the math.
  4. Click Generate groups. Dislike the draw? Hit Reshuffle for an independent, equally-fair re-roll.
  5. Copy result, Download CSV (columns: Group, Member), or copy a share link that re-loads the same roster and settings.

Worked example

You have a class of 23 students and want 5 breakout rooms. Set mode to Number of groups, G = 5. With N = 23: base = floor(23 / 5) = 4 and rem = 23 mod 5 = 3. So the first 3 groups get 4 + 1 = 5 members and the remaining 2 groups get 4 members → sizes 5, 5, 5, 4, 4 (total 23, nobody lost or duplicated). The headline reads "23 names → 5 groups of 4–5". Switch to People per group with S = 5 and you'd get G = ceil(23 / 5) = 5 — the same five groups, rebalanced to 5, 5, 5, 4, 4 rather than a lonely 5, 5, 5, 5, 3.

How the math works (and why it's fair)

Accuracy & honesty notes

How to embed this tool on your website

No account, no coding. Copy the embed code and paste it where you want it to appear.

Embeddable in one line — copy the ready-made snippet from the box below.

Frequently asked questions

How does it decide who goes where?

An unbiased Fisher–Yates shuffle using crypto.getRandomValues with rejection sampling (no modulo bias), then the shuffled list is sliced into groups. Every person is equally likely to land in any group.

Are the group sizes fair?

Yes — when the roster doesn't divide evenly, sizes differ by at most 1 (e.g. 23 into 5 → 5,5,5,4,4). It's balance by size only, not by skill, gender, or prior teammates.

Does it remember my roster?

Yes, if "Keep roster on this device" is on (default). It's saved in your browser's localStorage — no account, never uploaded. Turn it off any time.

What about duplicate names?

Kept by default, since two real people can share a name. You get a non-blocking notice, and an optional "Remove duplicate names" toggle if they're truly the same person.

Can I have more groups than names?

Yes — extra groups are shown explicitly as empty (0 members) with a notice, rather than hidden. No name is ever lost or duplicated.

Is it really free and private?

Yes — 100% free and fully client-side. Your roster never leaves the browser; the optional 'keep roster' setting uses localStorage on your own device.

Related tools

Put this team generator on your site

Free, one line, no account. Great for a teacher's class page, a club site, or an event-planning post.

<iframe src="https://snaptoolsuite.com/random-team-generator/?embed=1"
  style="width:100%;max-width:620px;height:1100px;border:0;"
  title="Random Group & Team Generator" loading="lazy"></iframe>
2 Paste it on your page
3 It just works

🔒 Your roster is split in your browser and saved only there (if you choose). We don't store or sell your data.