GenerateRandomSearch

Setting up a gift exchange that can actually be drawn

How do you set Secret Santa rules that will still work when it is time to draw?

Every year the same thing happens: the rules get agreed in a group chat, everybody adds one more exclusion, and the draw is attempted on the night. Sometimes it works. Sometimes two people are left holding each other's names, or their own, after everybody else has already looked — and the reason is that the rules were never possible, which nobody could have known from reading them.

A draw is a matching problem, not a shuffle

With no rules beyond 'nobody draws themselves', a gift exchange is a shuffle and always works. The moment somebody says 'not my husband' or 'not the person I had last year', it stops being a shuffle and becomes a question about whether a valid assignment exists at all — and that is a different kind of question, with a yes-or-no answer that no amount of redrawing will change.

That question has an exact answer. Think of it as two columns — givers on one side, receivers on the other, a line between them wherever the pairing is allowed — and the draw succeeds exactly when every giver can be matched to a different receiver. There is a theorem for when that is possible, and it says something specific and useful: it fails precisely when some group of givers collectively has fewer allowed recipients than there are people in the group.

That last part is why a hat cannot help. Each person in the group may still have an option; it is only looking at them together that reveals the problem, and drawing names one at a time never looks at them together.

The rules that cost the most

Avoiding previous years is the expensive one, and it compounds. Each year you avoid removes one option from every participant, so a group of eight avoiding three years leaves everybody with four options — and tight groups fail suddenly rather than gradually.

Household rules are the next most expensive, and their cost depends entirely on the shape of the group rather than on how many households there are. Two couples in a group of twelve barely register; the same two couples in a group of six removes a third of all possible pairings and leaves very little room for anything else. It is worth asking whether the rule is needed at all — partners who see each other every day may be exactly the people who know what to buy.

Individual exclusions look cheap and are, until several of them land on the same few people. Three people who between them may only draw one other person is a failure, and it can be built out of three separate exclusions that each seemed entirely reasonable when it was added. Nobody makes this mistake deliberately; it is made by adding rules one at a time and never looking at the set as a whole.

What each rule costs in a group of eight
RuleOptions removed per personWhen it bites
Nobody draws themselves1Never — this is the baseline.
One household of two1, for those two onlySmall groups with several couples.
Avoid last year1, for everybodyImmediately, and it compounds each year added.
Avoid three years3, for everybodyGroups under about ten fail here.
A handful of exclusionsVaries, and concentratesWhen several land on the same few people.

Check before you announce, not after somebody complains

Changing a rule in advance is administration. Changing a rule after the draw has failed, or worse after it has succeeded and somebody is unhappy with it, is a row. The whole argument for checking first is that it moves the problem to the cheap moment.

When a set of rules does not work, the useful output is not 'impossible' but which people are stuck together. Removing one exclusion inside that group is almost always enough, and knowing which group means you are removing the right one rather than the one somebody minds least.

It is also worth knowing when a draw is technically possible but barely. If one person has exactly one option left, their pairing is not random at all — it is fixed by the rules, and the draw merely confirmed it. Everybody would rather be told that in advance than work it out afterwards, and it is usually a sign that one exclusion too many has been added.

Making a draw people believe

A draw nobody can check is a draw somebody will eventually question, particularly where there is a budget attached. The strongest thing available without involving a third party is a seed: publish it before the draw, and anybody with the participant list can reproduce the result exactly.

The order matters more than the seed does. A seed chosen after seeing the entrants is a choice of outcome, because you can try seeds until one produces the result you want, and a published seed and an unpublished one look identical afterwards.

For most families this is overkill and a hat is fine. For an office exchange with a real spending limit, or anywhere the organiser is also a participant, it costs nothing and removes the question before anybody thinks to ask it. The organiser being in their own draw is the case worth being careful about: nobody suspects anything until somebody is disappointed, and by then the draw cannot be repeated.

The bottom line

Add every rule you want, then check the whole set at once before announcing it. Impossibility usually comes from a group of people sharing too few recipients rather than from any one person being stuck, which is exactly what a hat cannot see and what a check takes seconds to find.

Other guides