📋 In This Guide
Why This Tool Exists
Manually assigning people to random groups — by drawing names from a hat, or eyeballing a "random" split — is slow and often not actually random at all; people unconsciously cluster friends together or avoid certain pairings. This tool removes that bias entirely: paste your list, pick how many groups you want, and get a genuinely randomized, evenly-balanced split in one click.
Classrooms
Fair project or activity group assignment
Events & Games
Team splits for game night or tournaments
Workplace
Random pairing for mentorship or task rotation
Secret Santa
Randomly order or split a gift-exchange list
Why Fisher-Yates, Not a Naive Shuffle
A common but subtly flawed approach to shuffling is sorting an array using a random comparison function (like array.sort(() => Math.random() - 0.5)). This does not produce a uniform distribution — depending on the sorting algorithm's internal comparisons, certain orderings end up more likely than others, in a way that's invisible until you actually measure it statistically.
How Uneven Group Sizes Are Handled
When your total number of people doesn't divide evenly by your chosen number of groups, this tool distributes the remainder as fairly as possible — group sizes will never differ by more than one person.
| People | Groups Requested | Resulting Group Sizes |
|---|---|---|
| 10 | 3 | 4, 3, 3 |
| 13 | 4 | 4, 3, 3, 3 |
| 20 | 5 | 4, 4, 4, 4, 4 |
Need a random number instead of groups?
Generate random numbers within any custom range.
Common Uses for Random Grouping
Beyond classrooms, this works for splitting a large team into breakout discussion groups, randomly assigning tasks or presentation slots, forming balanced teams for a friendly competition, or even just shuffling a raffle or gift-exchange list into a random order.
5 Tips for Fair Group Assignment
Frequently Asked Questions
It uses the Fisher-Yates shuffle algorithm, proven to give every possible ordering an equal probability, unlike naive shuffling approaches that can subtly favor certain arrangements.
People are distributed as evenly as possible, with group sizes differing by at most one person — for example, 10 people into 3 groups gives two groups of 3 and one group of 4.
Yes. This tool supports both modes — specify the number of groups you want, or the target people per group, and it calculates the other value automatically.
Sorting an array with a random comparison function doesn't produce a uniform distribution and can noticeably bias certain orderings depending on the sorting algorithm used internally.
Yes. Setting the number of groups equal to the number of names shuffles the list into random order, which works well for picking someone at random from the top.
No. All shuffling happens instantly inside your browser using JavaScript. Nothing you type is uploaded, logged, or stored on any server.