Each year at Thanksgiving, my family has drawn names out of a hat to determine who they'll be a "Secret Santa" for the Christmas gift exchange. It's important to our family culture that no one else in the family knows who each other got in order to keep it interesting. The only rule to the selection is that you can't pick your spouse. If that happens, you draw again and put your spouse's name back in the hat.
Due to logistics and travel plans this year, we're celebrating Christmas early (only two weeks after Thanksgiving).
In order to allow for plenty of time to look for gifts, we'd like to select names now. Our family is located across the U.S.A. Some members have access to the Internet and some don't (e.g. my dear Grandma).
What I would like to do is have a fair protocol that simulates drawing names out of a hat and ensures some level of secrecy without being overly complex. Some websites, like the former drawnames.com or others like it usually require people to put in their email address. I want to make absolutely sure that my family's email addresses don't get abused so I don't want to trust them to another site.
The best protocol I can come up with is:
- Write a program that randomly picks people and ensures people don't get their spouse.
- The program will show me half the list but will not show me who got my name, but will show me whose name I have and the person who got my wife's name.
- Then, I will leave the room and the program will display the other half of the list of people to my wife (which will include who has my name).
- My wife and I will then contact each person and tell them who they have.
Am I missing a better protocol? By better, I mean something that would allow more secrecy. Again, due to logistics and to keep things simple, I don't want to have to build a website.