Find your person
You are buying for
1. Who is playing
2. Rules
A pasted link brings back its names and rules and avoids every pairing from that draw, without anyone reading them.
Add at least three names, then choose how to hand out the results.
Your group link
How it works
The draw. The page first checks, with an exact matching algorithm, that the rules leave a valid draw at all, and if not it names the people who are stuck. Then it shuffles until a draw satisfies every rule, and falls back to a depth-first search for tight rule sets. One loop covering everyone is a uniformly random circle.
The link. The group link holds the names, the rules and one random number. Opening it recomputes the same draw in the visitor's browser. Nothing is stored on a server, so there is nothing to leak, and also nothing to recover: save the link.
Honor system. Because the link contains everything needed to recompute the draw, someone determined and technical could work out every pairing. It is the hat on a table. For an airtight version on one device use Pass the phone.
Checked: the test suite draws thousands of random groups and confirms that nobody draws themselves, couples are kept apart, last year's pairs are not repeated, the no-swap and single-loop rules hold, and a link always reproduces the same draw.
Common questions
Can the organizer join without seeing who got whom?
Yes. Make a group link and share it in your group chat: the organizer never sees the pairings, and each person opens the link, picks their own name and sees only their person. The draw is worked out in each browser from a random number inside the link, so there is no server that could leak it.
How do I stop couples from drawing each other?
Type each couple or family on its own line under Can't draw each other, for example Ann, Ben. Everyone on a line is kept apart from everyone else on that line. If the rules leave someone with no one to give to, the page names the people who are stuck and says what to loosen.
How do I avoid repeating last year's pairs?
Paste last year's group link into the next-year box and the new draw avoids every pairing from that draw without anyone reading them. Or type last year's pairs as Giver > Receiver, one per line.
What is the no swaps rule?
It means if Ann gives to Ben then Ben cannot also give to Ann, so nobody buys for the person who buys for them. The single loop rule goes further and makes one big circle: Ann gives to Ben, Ben to Cara, and so on until the last person gives to Ann.
Is this really private?
The names and the draw never leave your browser and there are no accounts. A group link works on the honor system, like a hat on a table: anyone who is determined and knows how to read the link could work out every pairing. For an airtight version use Pass the phone, which reveals one person at a time on one device.
Does it cost anything?
No. It is free and open source with no ads, no sign-up and no email addresses collected.