Random Group Generator

Paste a list of names and instantly split them into fair, randomly shuffled groups, either by number of groups or by group size, entirely in your browser.

runs locally on your browser. Your data never leaves your device.
0 names

Add at least 2 names, one per line, to create groups.

Split By

Number of Groups

Paste your names and click Shuffle Groups

Fair, unbiased shuffling, computed entirely in your browser

Common Use Cases

Divide a classroom of students into random project or discussion groups
Split coworkers into random teams for a team-building exercise or icebreaker
Randomly assign players to teams for a pickup game or intramural league
Break a large workshop or meeting into smaller random breakout groups

About Random Group Generator

Splitting a class, a team, or a room full of people into groups by hand is slow and easy to second-guess: did you accidentally put the same two people together again, or make one group noticeably bigger? This tool takes a plain list of names, one per line, and randomly shuffles them into groups in an instant, entirely inside your browser.

Choose how you want the split to work: pick a target number of groups (e.g. "split these 24 students into 4 teams") and the tool distributes everyone as evenly as possible, or pick a target group size (e.g. "put people into groups of 3") and it chunks the shuffled list accordingly, with the final group taking whatever's left over. Either way, the underlying shuffle is the same: every name has an equal, independent chance of landing in any position before the groups are cut, so there's no bias toward keeping names in the order you pasted them.

The shuffle itself uses the Fisher-Yates algorithm, the standard, provably unbiased way to randomly reorder a list, but instead of drawing its randomness from Math.random(), it pulls from crypto.getRandomValues(), the Web Crypto API's cryptographically strong random number generator, with rejection sampling applied so the result isn't even subtly skewed toward smaller values. That's more rigor than a group-picker strictly needs, but it means the shuffle is as fair as randomness gets, with no shortcuts.

Once grouped, each group is shown as its own card with a member count and a one-click copy button, plus a "copy all" and a "download .txt" option for pasting the full breakdown into an email, a lesson plan, or a spreadsheet. Nothing you type is ever uploaded, transmitted, or stored; the names you paste, and the groups generated from them, exist only in your current browser tab.

Frequently Asked Questions

How does the random group generator actually split people up?
It first shuffles your full list of names into a completely random order using the Fisher-Yates algorithm, then cuts that shuffled list into groups, either a fixed number of groups (as evenly sized as possible) or fixed-size groups (with the last group taking whatever's left over), depending on which mode you pick.
Is the shuffle actually fair, or biased toward certain positions?
It's unbiased. The shuffle uses crypto.getRandomValues(), the Web Crypto API's cryptographically strong random number generator, instead of Math.random(), and applies rejection sampling when picking each random index so no value is even slightly more likely than another. Combined with the Fisher-Yates algorithm, every possible ordering of your names is equally likely.
What happens if the number of names doesn't divide evenly into groups?
In "Number of Groups" mode, the extra names are spread one-per-group across the first few groups, so no group ends up more than one person larger than any other: a 10-person list split into 3 groups becomes 4/3/3, not 8/1/1. In "Group Size" mode, every group is filled to the target size except the last one, which simply takes whatever names are left over.
Can I set an exact number of people per group instead of a number of groups?
Yes. Switch "Split By" to "Group Size" and set how many people you want in each group; the tool works out how many groups that produces automatically, rather than you having to pre-calculate it from "Number of Groups" mode.
Does this tool upload, store, or share the names I enter?
No. The names you paste and the groups generated from them are processed entirely in your browser using client-side JavaScript, so nothing is ever sent to a server, logged, or saved outside your current browser tab. Refreshing the page clears everything.