About this tool
The Secret Santa Generator randomly pairs a group for a gift exchange so that everyone gives exactly one gift and receives exactly one — and no one draws their own name. Paste one name per line, add any exclusion pairs you need (for example, so a couple isn't matched to each other), and click Assign.
Under the hood it builds a valid derangement using a cyclic assignment: the names are shuffled with a Fisher-Yates shuffle driven by the browser's cryptographic random generator (crypto.getRandomValues), then each person in the shuffled order gives to the next person around the cycle, with the last giving to the first. A single cycle guarantees no self-matches and that everyone both gives and receives once. To honor exclusions, the tool reshuffles up to a couple of thousand times until it finds an arrangement that breaks no rule; if your constraints can't be satisfied, it tells you rather than returning a bad list.
This is a single-device tool for the organizer — it shows the full giver-to-receiver list on screen, so run it privately. Everything happens locally in your browser: nothing is uploaded and it works offline. Enter exclusions as two names per line separated by a comma, colon, or dash (for example, "Alex, Jordan").