Secret Santa generator
Enter the names, say who must not draw each other, and let each person find out privately whom they give a gift to.
This tool needs JavaScript. The rest of the page works without it.
You give a gift to:
This link is incomplete or damaged. Ask the organiser to send it again.
The pair is read from the link on this device. This site does not store it.
After the draw you choose how people find out whom they give a gift to.
Send each person their own link, for example in a chat. Opening a link shows only that person’s match. The match is written in the link itself, so anyone who opens it can see it, including you.
Everyone is in the same room: each person looks at their own name and hides it before passing the phone on. Nobody else needs to see a link.
Ten slips per page. Fold each slip along the dashed line so that only the name of its owner shows outside, and hand them out.
Something went wrong. Your entries are still here.
What this tool does
Everybody on the list gives one gift and receives one. Nobody draws their own name, and people on the same rule line, such as a couple or a household, never draw each other.
You do not need email addresses or accounts. After the draw you choose how people find out: a private link for each person, one phone passed around the room, or printed slips. The tool does not show the complete list of pairs, so the organiser can take part too.
The draw happens in your browser and is not stored anywhere. If you reload the page before everyone knows their name, draw again.
How to use it
- Enter the names of everyone taking part, one per line. Every name must be different.
- Optionally, under “Who must not draw each other”, write each couple or household on its own line, for example Ann, Ben.
- Optionally add a message for everyone, such as the budget and the date.
- Press “Draw names”.
- Choose one way to tell people: copy each person’s link and send it to them, press “Start” under “Pass the phone”, or print the slips and fold them.
Worked example
Four friends take part: Ann, Ben, Cy and Dee. Ann and Ben are a couple, so the rule line is Ann, Ben.
Of the 24 ways to hand out four names, 9 give nobody their own name, and 4 of those also keep Ann and Ben apart: Ann gives to Cy or Dee, Ben to the other one, and Cy and Dee give to Ann and Ben in either order. The tool picks one of these 4 draws, each with a chance of 1 in 4.
For six people in two couples and two singles, 116 of the 720 orders follow the rules. The same method picks each of them with a chance of 1 in 116.
How the draw works
The tool shuffles the list of receivers with the Fisher–Yates method and the cryptographic random number generator of your browser, and checks every pair as it is placed. At the first pair that breaks a rule, including a person drawing themselves, the whole attempt is thrown away and a new one starts. Because every order is equally likely before the check, every order that passes is equally likely too. Without rules, about 37% of orders pass (the share tends to 1/e), so a few attempts are usually enough.
Before drawing, the tool checks whether the rules can be met at all, by looking for a complete assignment of givers to receivers. If somebody can draw nobody, or if no complete draw exists, it says so instead of drawing. If the rules leave so few possible draws that 100,000 attempts all fail, the tool finds a valid draw by a search in random order and tells you that this draw did not use the equal-chance method.
A private link contains the name of one person and the name they draw, plus the message, in the part of the address after the # sign. Browsers do not send that part to the web server, so the pair never reaches this site. The text is encoded, not encrypted: anyone who has the link, including the organiser, can see the pair. Send each link only to its owner, or use “Pass the phone” when secrecy matters.
Common mistakes
- Two people with the same name. Add an initial so that everyone knows which link or slip is theirs.
- Rules that leave no possible draw, for example three people where two are a couple: both of them would have to give to the third person. The tool names the problem.
- Sending all links to a group chat. Everybody in the chat can then open everybody’s link.
- Reloading the page before everyone has their name. The draw is not stored; after a reload you draw again and send new links.
Frequently asked questions
- Do I need email addresses?
- No. The tool asks only for names. You send the private links yourself, through any chat or message app, or you use one phone or printed slips.
- Can the organiser see who has whom?
- The screen never lists the pairs. The links contain them, though, so an organiser who opens someone else’s link sees that pair. If the organiser takes part and wants no chance of knowing, use “Pass the phone” or printed slips.
- Is the draw fair when there are rules?
- Yes. Among all draws that follow the rules, each one has the same chance, as the worked example shows. Only when the rules leave very few possible draws does the tool fall back to a search, and it tells you when that happens.
- Is anything stored or sent to a server?
- No. The names are processed in your browser and are not saved, not even in the browser. A private link is part of the address, but the part after # is not sent when the link is opened. It does stay in the browser history of whoever opens it.
- Can I draw again?
- Yes, press “Draw names” again. Links from an earlier draw keep showing the earlier pairs, so send the new links and ask everyone to ignore the old ones.
Last updated: September 29, 2026