Random Team Generator

Secret Santa Generator

Type the names, tap Draw names, pass the phone around. Everyone gets exactly one person, nobody can draw themselves — guaranteed by the algorithm, not by re-rolling — and each assignment stays hidden until its owner taps to reveal it. No emails, no accounts, and the list never leaves the phone.

6 names entered

Every person draws exactly one other person, and nobody can draw themselves — the assignment is a mathematical derangement, not a retry loop. Results stay hidden until each giver taps their own row, so you can pass one phone around the room.

Everything runs in your browser — the names you type are never sent to a server. The share link encodes the roster in the URL itself, so only share it with people who may see the list.

Why "just shuffle the names" fails more often than it works

The paper-hat method — shuffle names, deal one to each person — has a famous flaw: someone draws themselves and the whole hat gets redone. How often? For a random shuffle of n names, the chance that at least one person self-draws is 1 − !n/n!, where !n counts the derangements (shuffles with no self-draws). The numbers below are computed exactly from that formula:

Group size Possible shuffles (n!) Valid draws (!n) Chance a naive shuffle fails
3 people 6 2 66.7%
4 people 24 9 62.5%
5 people 120 44 63.3%
6 people 720 265 63.2%
8 people 40,320 14,833 63.2%
10 people 3,628,800 1,334,961 63.2%

The failure rate settles near 63.2% (it converges to 1 − 1/e) — meaning the office hat draw needs, on average, nearly three attempts. This generator skips the problem entirely: it builds the assignment as a single cycle through everyone (Sattolo's algorithm), so a self-draw is impossible on the first and only attempt.

Worked example: six colleagues, one phone

The pre-loaded demo has six names. One possible draw is the cycle Maya → Leo → Sam → Noor → Priya → Daniel → Maya: six assignments, no self-draws, and notice there is also no pair who simply swap with each other — a side effect of the cycle construction that people consistently prefer, because mutual "you got me, I got you" draws feel like a failed shuffle. In the room it looks like this: the organizer taps Draw, hands the phone to Maya; she taps her row, sees her recipient, taps again to hide, passes to Leo; ninety seconds later all six know their person and the screen shows six hidden rows.

What this deliberately doesn't do

  • No emails or links to each participant. Email-based tools need everyone's address and a working spam filter; passing one phone needs neither. The trade-off is honest: there is no recovery copy if everyone forgets — see the FAQ for mitigations.
  • No exclusion rules (couples, managers). Supporting them properly requires a different algorithm; pretending to support them badly would break the guarantee this page is named after.
  • No budget tracking, wish lists or accounts. It draws names. Your group chat does the rest.

After the draw

Splitting the same crowd into party-game teams afterwards is the day job of the random team generator — paste the same six names and make trivia pairs. Office parties tend to follow with work project group draws on Monday, and if the gift exchange is for a class, the classroom group generator keeps the same roster bookmarked via share link.

Frequently asked questions

Can someone end up drawing their own name?

No — and not because the tool retries until it gets lucky. It uses Sattolo's algorithm, a variant of the standard shuffle that mathematically cannot produce a self-draw: the assignment always forms one big cycle through every participant. "Nobody draws themselves" is a property of the construction, not a filter applied afterwards.

How do we run the draw on one phone without spoiling it?

Generate the pairs, then pass the phone around. Each person taps only the row with their own name, memorizes their recipient, taps again to hide it, and hands the phone on. The organizer sees the list of giver names but no recipients unless a row is deliberately revealed.

Can two people be secretly assigned to each other?

Not with 3 or more participants. Because the assignment is a single cycle, if Maya gives to Leo then Leo necessarily gives to someone else — mutual pairs are impossible. With exactly 2 participants a mutual swap is the only option, and the tool does that.

Does the organizer secretly know who has whom?

Only if they peek. The draw happens in the browser and nothing is uploaded, so there is no email trail — which also means no recovery if everyone forgets. Practical fix: after each person reveals their draw, they write it somewhere private. Or use "Copy all pairs" and paste into a note the organizer promises not to read — the button is honestly labelled a spoiler.

Someone joined after we drew. Can we add them without redoing everything?

Not cleanly — inserting one person into an existing cycle means changing at least one existing assignment anyway. The honest options: re-draw completely (two seconds), or have the newcomer swap in manually: pick one existing pair A→B, change it to A→newcomer→B, and tell only those two people.

Can I set exclusions, like couples not drawing each other?

Not in this version — supporting exclusion rules while keeping the no-self-draw guarantee needs a different algorithm, and half-supporting it would be worse than being upfront. The single-cycle property already prevents the most common complaint (mutual gift-backs). For couples, a workable manual trick: run the draw, and if a couple lands adjacent in the cycle, re-draw — you can see adjacency by revealing all pairs before anyone else looks.