Skip to content

Secret Santa Generator

Draw names with exclusions, then reveal by private link, pass-the-phone or an organizer list. No sign-up, no emails.

  • Free
  • No sign-up
  • Runs locally

Runs in your browser; what you enter is not uploaded to our servers.

Updated

What this Secret Santa generator does

This Secret Santa generator draws names for a gift exchange in your browser. Type the people taking part, add anyone who must not draw each other (partners, housemates, a whole family), and press Draw names. Every person gets exactly one person to buy for, nobody draws themselves, and every exclusion holds in both directions.

You then choose how people find out. Each person can get a private reveal link that opens a "Hi Aisha, tap to reveal" card. Everyone in one room can pass a phone around and reveal their name in turn. Or the organizer can open the full list behind a warning and copy it or download it as a CSV file.

There is no sign-up and nobody's email address is needed. The names, the draw and the links are created on your device; nothing is sent to a server.

How to draw names

  1. List the people. One name per line in "Who is taking part". Commas also separate names, so you can paste a list from a chat. You need 2 to 100 people, and each name must be unique: two Sams become "Sam K." and "Sam P.".
  2. Add exclusions. In "Who must not draw each other", write one group per line, such as Aisha, Ben. A line with three or four names keeps a whole household apart. The label counts the pairs being kept apart.
  3. Fill in the optional details. An event name, budget, exchange date and short note appear on every reveal card. Write the budget with its currency: "$25", "£20" or "₹1,000".
  4. Pick the draw rules. "Any valid draw" is the classic. "No gift swaps" stops two people drawing each other. "One big circle" links everyone in a single loop.
  5. Press Draw names. The line next to the button tells you how many different draws your rules allow, for groups of up to 12 people (up to 8 with the stricter rules).
  6. Deliver the results with the tabs: Links, Pass the phone or Organizer list.

Change a name or rule after drawing and the tool hides the old result until you draw again.

How the draw works

A Secret Santa draw is a rearrangement of the group in which every person has a giver and a receiver. The rules say which arrows are not allowed: from a person to themselves, and between any two people on the same exclusion line.

The tool works in three steps:

  1. Check that a draw exists. It treats the group as a matching problem: givers on one side, receivers on the other, a link wherever a gift is allowed. If no complete matching exists, it finds the people who are stuck and says why, before you press anything.
  2. Shuffle the whole group. It shuffles everyone with your browser's cryptographic random generator (crypto.getRandomValues) and keeps the first shuffle that breaks no rule. Rejected shuffles are discarded, so every valid draw is equally likely.
  3. Fall back to a careful search. With very tight rules, thousands of shuffles can fail in a row. The tool then assigns one giver at a time, checking that everyone left can still be matched. For "Any valid draw" this always finds a valid draw when one exists. "No gift swaps" and "One big circle" use a trial-and-error search that stops after 100,000 steps, so the page stays responsive; in the rare case it runs out, the tool says so and suggests removing an exclusion. The fallback is not perfectly even, so it is only used when shuffling fails.

Worked example: six people in three couples

The example list holds Aisha, Ben, Chloe, Dev, Elena and Finn, with three couples: Aisha and Ben, Chloe and Dev, Elena and Finn.

  • With no exclusions, six people can be drawn in 265 different ways (the number of ways to rearrange six people so that nobody keeps their own name).
  • Keeping the three couples apart removes every draw where a partner draws a partner, which leaves 80.
  • Add "No gift swaps" and 48 remain. "One big circle" leaves 32.

Exclusions also make a draw more predictable: Aisha now has four possible recipients instead of five.

Worked example: when no draw is possible

Take five people, Aisha, Ben, Chloe, Dev and Elena, and put the first three on one exclusion line. Those three must all buy for someone outside their household, and only Dev and Elena are left. The tool reports:

Aisha, Ben and Chloe can only draw Dev and Elena between them – 2 people for 3 gifts.

Add a sixth person, Finn, and the household has three outside people for three gifts. The draw works again, with 36 possible draws. In general, any group on one line must be no more than half of the whole exchange.

The simplest impossible case is two people excluded from each other.

Three ways to reveal the names

Every person gets a link that looks like /tools/secret-santa-generator#reveal=AQx3…. The part after #reveal= holds that person's name, the person they drew, the draw code and your optional details, encrypted with AES-GCM. When the link is opened, the page decrypts it on the device and shows a card with the giver's name and a Tap to reveal button.

Be clear about what this protects. The key that opens the card travels inside the same link, because there is no server to keep it. The encryption stops someone from reading the name by glancing at the link. It does not stop someone who opens the link. So send each link only to its owner, by direct message or email, and if you are the organizer, do not open anyone else's link.

Two details help: browsers do not include the part after # when they request the page, and as soon as the page's code loads, it clears the code from the address bar so nobody shares their answer by copying the page address.

The Links tab offers Copy link, Copy message (a ready-to-send greeting that does not name the receiver), Share on phones that support it, and a CSV of names and links for a mail merge.

Pass the phone

For a group in one room. The screen says "Pass the device to Ben". Ben taps I am Ben – show me, reads his name and taps Hide and pass on, which brings up the next hand-over screen. "Skip for now" moves someone who has stepped out to the end of the queue.

Organizer list

If you organize without taking part, this tab shows every pairing after a warning, to copy or download as a CSV with the columns "Giver" and "Gives a gift to". Keep it private: it settles a lost link or a mix-up.

Example setups

  • Office exchange of 25 people. No exclusions; send links as direct messages in your work chat, with the budget and party date on the card.
  • Extended family of 14. One line per household. Four households of three or four people are each well under half the group, so the draw is easy to satisfy.
  • Friends in different countries. Add a note such as "Ship by December 10". The card shows the date in each reader's own format, such as December 18, 2026 in the US and 18 December 2026 in the UK.
  • Classroom swap. Pass the teacher's tablet around so students never handle links.

Possible draws by group size

Counts of different valid draws with no exclusions:

PeopleAny valid drawNo gift swapsOne big circle
3222
4966
5442424
6265160120
71,8541,140720
814,8338,9885,040

With three people every draw is already one circle with no swaps, so all three columns match. "One big circle" counts each loop once, so it follows (people − 1)!: 2, 6, 24, 120 and so on.

Tips and common mistakes

  • Never paste all the links into a group chat. Everyone could open every card.
  • Spell exclusion names exactly like the list. Capital letters and accents are ignored, but a typo such as "Benn" is not a match. The tool warns you and ignores that name.
  • Redraws leave old links working. If you draw again after sending links, the old ones still open with the old pairings. Tell people to check the draw code on their card.
  • Do not make one household too big. If a single exclusion line holds more than half the group, no draw is possible.
  • Test with your own link first. It shows exactly what everyone else will see.

Privacy and limitations

No server is involved: the draw, encryption and reveal all happen on the devices taking part. The names, the exclusions and the most recent draw are saved in the organizer's local storage, so the organizer can come back and copy a link again. "Delete this draw from this browser" or "Clear all" removes them. A person who opens a reveal link keeps the code in that tab's session storage until they close the card or the tab.

The links are only as private as the channel you send them through. Anyone can make a link that shows any names and note, so the reveal card labels the note as coming from the person who made the link and not checked by ToolkitJar. There is no wish list, no reminder email and no way to edit a pairing – draw again instead. Names can be up to 40 characters and the note up to 200.

To settle a decision between two options instead of a gift list, try the yes or no wheel. To sort the participant list first, use alphabetical order.

Frequently asked questions

Can the organizer take part without knowing who has whom?

Yes. Draw the names, then send each person their private link without opening any of them, or use pass-the-phone mode so everyone reveals their own name in turn. The full list stays hidden behind a warning unless you choose to open it. Opening your own link is fine. You could peek at other links, so the system relies on the organizer's honesty, just like a hat does.

How do I stop partners or family members drawing each other?

Type them on one line in the exclusions box, separated by commas, for example "Aisha, Ben". Everyone on a line is kept apart in both directions, so a line with a whole household works too. Each line is a separate group. Names must match the participant list, ignoring capital letters and accents; misspelled names are flagged so a rule is never silently dropped.

Why does the generator say no draw is possible?

Your exclusions leave some people with too few possible recipients. In a group of five, a household of three can only give to the other two people, and three gifts cannot go to two people. The message names the people who are stuck and the people they could draw. Remove one exclusion, split the household into couples, or add more people to the group.

Do the reveal links expire, and where are they stored?

They never expire, and they are not stored anywhere: each link carries its own encrypted pairing, which the page decrypts in the browser. That also means links from an earlier draw keep working after you draw again. Every card shows a four-character draw code, so if you redraw, tell people which code is current. The latest draw is saved only in the organizer's browser.

What if someone loses their link?

Open the generator in the same browser you drew with. The last draw is saved there, so the Links tab can copy that person's link again. The new link looks different, because each copy gets a fresh encryption key, but it reveals the same name. If you deleted the draw or used another device, check the organizer list or CSV if you kept one, or draw again.

Is the draw really random and fair?

The draw uses your browser's cryptographic random number generator (crypto.getRandomValues). It shuffles the whole group and keeps the first shuffle that obeys every rule, which makes each valid draw equally likely. For groups of up to 12 people the tool shows how many valid draws exist, such as 80 for six people in three couples. Only extremely tight rules use a step-by-step fallback.

Can I use it for a gift exchange that is not Secret Santa?

Yes. The draw works for any one-gift-each exchange: Kris Kringle, a classroom or office gift swap, a book exchange, or matching people for cards or check-in calls. Type a group or event name and it appears on every reveal card. The one-big-circle option suits exchanges where gifts are opened in turn, because each person who receives a gift then gives the next one.

How many people can join one draw?

From 2 to 100 names, and each name must be unique, so add an initial when two people share a first name. Two people with no exclusions can only draw each other. With 100 people the draw normally takes a fraction of a second. The count of possible draws appears for groups of up to 12 with any valid draw, and up to 8 for the other two rule options.

All random tools

Published · Updated

Found a bug or have an idea? Tell us