Free tool

Secret Santa generator

Add your names for a Secret Santa, keep couples apart if you like, and get a private link for each person that shows only who they are buying a gift for.

At least 3, at most 60.

Ana & Ben: neither gives to the other. Cy > Dee: only Cy is stopped.

Add at least three people, then make the matches.

In short: A Secret Santa generator gives each person one other person to buy a gift for, so everyone gives once and receives once and nobody gets themselves. This one can keep chosen pairs apart and gives each person a private link, so the organiser does not need to read the matches.

How the Secret Santa matches are made

  1. List everyone. Names are tidied and repeats are dropped, ignoring capital letters.
  2. Add your rules. Couples, housemates or last year's match can be ruled out, in one or both directions.
  3. Match at random. The tool picks a random assignment where each person gives to one person and receives from one person, using only pairs the rules allow.
  4. Send private links. Each link opens a page that shows one person's match, and only after they press a button.

For example, with Ana, Ben and Cy there are only two possible matches: Ana gives to Ben, Ben to Cy and Cy to Ana, or the reverse. With four or more people there are many more, and each rule you add removes some of them. When the rules remove too many, the tool names who is stuck instead of giving a wrong result.

Keeping the Secret Santa secret

A private link holds one giver, one receiver and the optional budget and date in the part of the address after the #. Browsers never send that part to a server, so the match reaches only the person you send the link to. The organiser's page lists names with copy buttons and never prints the matches. The links are still readable by anyone who has them, so send each one in a private message and avoid posting them in a group chat. For a surprise even the organiser cannot spoil, paste each link into a message without opening it.

Budget, date and fair rules

Set a budget in the box so every link shows the same limit, and a date so everyone knows when the gifts are due. Keep the rules short: every rule you add shrinks the number of possible matches, and a few rules on a small group can make a match impossible. Choosing one circle through everyone also guarantees that nobody is matched back to the person they are buying for, which makes the giver harder to guess.

Questions people ask

How does the Secret Santa generator match people?

Each person is given exactly one other person to buy for, and each person receives exactly one gift. The match is random, made in your browser with its cryptographic random number generator, and it follows your rules: nobody gets themselves and no ruled-out pair is matched. If a valid match exists, the tool finds one.

Can the organiser see who got whom?

Not unless they choose to. The page never lists the matches. It only gives you a copy button for each person's private link, so you can send the links without reading them. Be aware that a link contains the match in the part after the #, so anyone who opens or decodes a link can read it. The organiser who wants a real surprise should paste the links straight into messages and not open them.

How do I stop couples or family from getting each other?

Add a rule with an ampersand, such as Ana & Ben, and neither will be matched to the other. Use an arrow, such as Ana > Ben, to stop only Ana giving to Ben, which is handy for avoiding last year's match. Names must match the people list, ignoring capital letters.

What does the one circle option do?

It links everyone into a single loop, for example Ana gives to Ben, Ben to Cy, and Cy back to Ana. That guarantees no two people are matched to each other, so nobody can guess their giver by working out who they are buying for. Without it, pairs who swap gifts are possible. If your rules make one loop impossible, the tool says so.

Why does it say no match is possible?

Your rules have left someone with nobody to give to, or nobody to receive from, or the rules together leave no way for everyone to be matched. Three people with several ruled-out pairs is the usual cause. The message names the person who is stuck. Remove or loosen a rule and try again.

What if someone loses their link or drops out?

Make the matches again and send new links to everyone, because a match only works as a whole group. Pressing the button again makes a different match, so tell everyone to use the new links and ignore the old ones.

Are the names I enter sent anywhere?

No. The matching runs in your browser and nothing is stored or uploaded. Each private link carries one giver, one receiver and the optional budget in the part after the # in the address, which browsers never send to a server.