Random Group Generator
🔒 Runs in your browser
Fair shuffle (crypto.getRandomValues) — every name lands in a fully random group. Remainders are spread evenly, never dumped into one small leftover group.
Names entered
0
Groups generated
0
How it works
Paste a list of names or items, one per line, then choose how you want to split it: pick
Number of groups to fix how many teams come out, or Group size to fix
how many people go in each team. The tool shuffles the list with crypto.getRandomValues
(rejection-sampled, so there's no bias toward any position) and then chunks the shuffled order into
groups of even size.
When the count doesn't divide evenly, the leftover items are spread one at a time across the first few groups instead of piling into a single small or oversized last group — so with 10 names split into 3 groups you always get 4/3/3, never 4/4/2 or a lonely group of 1. Hit Shuffle again to redraw the same list into a fresh random split. Everything runs locally in your browser — nothing is uploaded.
Frequently asked questions
How fair is the shuffle?
Every draw uses crypto.getRandomValues with rejection sampling (the same unbiased technique as the random name picker), so every name has an equal, unbiased chance of landing in any group — no modulo bias.
What's the difference between "Number of groups" and "Group size"?
"Number of groups" fixes how many teams come out (e.g. 3 groups from 10 names). "Group size" fixes how many people go in each team instead (e.g. groups of 3), and the tool works out how many groups that needs.
What happens when the list doesn't divide evenly?
The leftover items are spread one at a time across the first few groups instead of being dumped into one small or oversized last group, so sizes never differ by more than one.
Are my names uploaded anywhere?
No. The list never leaves your browser — grouping happens entirely on your device and nothing is transmitted or stored.