LuckPickerSpin the Wheel

Category

Group Tools

Split into teams, shuffle an order, or run a Secret Santa draw.

Three tools for handling a whole group at once, rather than picking or generating a single item. All three share one foundational algorithm underneath -- the Fisher-Yates shuffle -- but apply it to three genuinely different jobs: splitting a group into teams, generating no-self-match gift pairs, and reordering a full list.

Fisher-Yates earns its place here because of one specific guarantee: every possible ordering of the list has to be equally reachable, full stop. A tempting alternative -- give each item a random tag and sort the list by that tag -- looks like it should do the same job, but whether it actually does depends on quirks of the sorting algorithm underneath, and in practice it tends to quietly favor some end results over others. None of the three tools in this category take that shortcut.

It's worth understanding Fisher-Yates concretely with a tiny example, since 'produces every ordering with equal probability' can sound abstract until you see it work: shuffling a 3-item list [A, B, C] has exactly 6 possible orderings, and a correct Fisher-Yates pass gives each of those 6 exactly a 1-in-6 chance -- not close to equal, genuinely equal, which is the specific mathematical property that separates it from shortcuts that merely look shuffled.

Team & Group Generator: shuffle, then deal

There's really only one hard part to splitting a group fairly, and it happens before any team assignment even starts: getting a genuinely unbiased shuffle of the roster. Once that's done with Fisher-Yates, dealing the shuffled names into however many teams you asked for is just mechanical round-robin distribution, with nothing left to chance at that stage. A roster that doesn't split evenly just means one or two teams end up carrying an extra member rather than someone being dropped.

Secret Santa Generator: shuffle, then check for self-matches

Gift matching adds a constraint a plain team split never has to deal with: nobody can end up buying for themselves. Mathematicians call an arrangement with that property a derangement, and it turns out a single ordinary shuffle lands on one by pure luck less often than you'd guess -- something close to two shuffles out of three will accidentally hand at least one person their own name, a figure that holds steady at roughly 63% no matter how big the group gets. So the tool doesn't stop at one shuffle; it keeps reshuffling and rechecking until the self-match problem disappears entirely, and it applies that same discard-and-retry habit to any pairs you've flagged as off-limits, like a couple who'd rather not draw each other. None of that pairing data is visible to whoever set the exchange up in the first place, since the whole thing resolves in the browser and each person only ever sees their own result.

Order Randomizer: shuffle and stop there

Of the three group tools, the order randomizer asks the least of Fisher-Yates -- there's no dealing into groups afterward and no self-match rule to satisfy, just a full-list reorder handed back exactly as shuffled. What's easy to underestimate is how many different orders that single shuffle is choosing between: a list of just 10 names already has upward of 3.6 million valid arrangements, and the whole point of using Fisher-Yates rather than an ad-hoc shuffle trick is that all 3.6 million of them stay equally reachable, with none quietly favored over the rest.

Why Fisher-Yates and not a simpler shuffle

The algorithm works by walking through the list from the last position to the first, and at each step, swapping the current item with a randomly chosen item from the remaining unshuffled portion (including possibly itself). That single-pass, swap-based approach is what guarantees every final ordering is equally reachable -- it's a well-established result in computer science, not a house convention.

The common shortcut -- attaching a random number to each item and sorting the list by that number -- looks like it should produce the same result, but it depends on the sort algorithm's internal behavior, particularly how it handles items with the same or very close random values, and in practice this shortcut has measurably skewed results in real implementations. It's a known enough problem that it has a name (sometimes called the 'Schwartzian shuffle' bias) among people who've had to debug it. Every group tool on this site avoids it by using genuine Fisher-Yates instead.

Choosing the right group tool

If your goal is splitting a group into teams or smaller clusters, the team generator is the right tool -- it shuffles then deals round-robin into your chosen number of groups. If your goal is a full-list reorder with no splitting (presentation order, playlist order, turn order), the list randomizer does exactly that and nothing more. If your goal is specifically a no-self-match gift exchange, only the Secret Santa generator adds the derangement logic needed to guarantee nobody draws their own name -- neither of the other two tools has that constraint built in, since it's a distinct mathematical problem from a plain shuffle.

Privacy: why these tools run entirely in your browser

All three group tools handle something a little more sensitive than a single random pick: a full list of real names, sometimes tied to a gift exchange where privacy is the entire point. None of the three transmit your list to a server at any point -- the shuffle, the derangement check, and the team dealing all happen using your device's own JavaScript engine and its own crypto.getRandomValues source, with the result displayed directly back to you. For the Secret Santa generator specifically, that client-side design is what makes the 'each person sees only their own match' promise credible: there's no server-side copy of the full pairing list sitting somewhere that could leak or be peeked at, because no such copy is ever created in the first place.

What happens with edge cases: very small or very large groups

At the small end, a 2-person Secret Santa is mathematically impossible without repeat gifting in both directions (each person would have to buy for the other, which technically isn't a self-match but also isn't much of a surprise draw) -- the tool still runs, but the practical value of the derangement logic only really kicks in from 3 participants upward. A 2-person team split similarly just returns each person on their own team, which is a valid but trivial result. At the large end, hundreds of names shuffle and deal just as reliably as a handful -- Fisher-Yates and the derangement retry loop both scale linearly with group size rather than degrading, so a company-wide 200-person holiday gift exchange runs through the same logic as a 6-person family one, just with more names to display at the end.

Frequently asked questions

Why do all three of these tools avoid sorting by a random value per item?

Because that shortcut doesn't actually produce a uniform shuffle -- depending on the sort algorithm's stability, it can subtly favor certain orderings, which is a known-biased anti-pattern Fisher-Yates specifically avoids.

Which tool do I need if I want to split people into teams and also make sure two specific people aren't together?

Still the team generator, since none of the three group tools support keep-apart rules directly -- treat any split that puts the wrong two people together as a signal to shuffle again rather than expecting the tool to route around it automatically.

Does the Secret Santa generator take longer for bigger groups because of the retry logic?

Barely, if at all -- the odds of hitting a self-match on any given attempt level off once a group passes a handful of people, so a 60-person office exchange doesn't need meaningfully more retries than a 6-person family one, and either finishes in a blink.

If I just want one person picked from the group, not a full reorder, which tool should I use?

None of the three group tools -- that's the random name picker's job, over in the pickers category.

What exactly is a 'derangement' in plain terms?

It's a shuffled arrangement of a list where no item ends up in its original position -- for Secret Santa, that means no participant is ever assigned to buy a gift for themselves.

Could the team generator accidentally recreate the same teams twice in a row?

Nothing stops it from happening -- there's no memory of the previous split, so an identical result twice is just a low-probability coincidence for a bigger group, and considerably less unlikely for a small one.

Is the 'sort by random value' shuffle shortcut really that bad in practice?

It depends on the sorting algorithm, but because its bias comes from implementation details rather than a controlled, well-understood source, it's the kind of subtle unfairness that's easy to ship accidentally and hard to notice without specifically testing for it -- which is exactly why this site avoids it in favor of genuine Fisher-Yates.

Do any of these three tools work if I paste in a numbered list, like '1. Alice, 2. Bob'?

Each line is treated as one unit for shuffling purposes, so numbering stays attached to its item -- just be aware the numbers themselves won't update to reflect the new order unless you renumber manually afterward.

Is there a version of the Secret Santa generator for a group where several people already know some pairings shouldn't happen?

You can set multiple exclusion pairs, and the tool re-shuffles until every constraint -- no self-matches and no forbidden pairings -- is satisfied simultaneously.

Can I preview a shuffle result before committing to it for a real team split?

Yes -- there is no limit on re-running any of the three tools, so you can generate a result, decide it does not work for your situation, and draw again as many times as you want.