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 fam
Get some paper and some envelopes. Number two of each envelope and two of each paper so that you have 2 "1" envelopes and 2 "1" papers, 2 "2" envelopes and 2 "2" papers, etc.
Have either you or your wife write every couple's names on matching papers, for example: you could put your name on a "1" sheet and your wife would have to be on the other "1" sheet. Address the matching envelope appropriately (your address would be on both "1" envelopes in the example).
Turn all of the papers and envelopes over so that none of the names or addresses can be seen (you did remember to write the numbers on the back of the paper and envelopes, right?) Swap places so that the person that did not do the writing stuffs the envelopes. Just be sure to put every numbered paper into an envelope with a different number (e.g.: never put a "1" paper into a "1" envelope). That way, you'll know that A) nobody got themselves and B) nobody got their significant other.
Not every answer needs to involve a computer! Just ask your nearest D&D player. :-P
You could have your computer dial each person via modem and use text-to-speech to announce their name over the line after an answer. It's sort of like the auto-dialer programs that political candidates and advertisers use to play you a message. Alternatively you could set it up so that your family calls your number and the computer answers. Then they push phone buttons to spell their name and the computer then tells them who they drew.
That way the names can be randomly selected by a simple program, and you don't have to see/hear who gets what names.
There is open source software that can run on linux to do this, although I have never used it. I assume there's an open source windows equivalent.
I assume your entire family has access to telephone even if they have no email.
On OS X it is very easy to take advantage of the Text-to-speech engine, just by calling the "say " command line utility. There are also ways to do this in windows as well.
SO you could ring up whoever is on your list, tell them to listen for who they should buy a gift for, and put a headphone from the computer up to the telephone, as you tell your program to say the name associated with the person you are calling. They can then tell you if they heard it clearly and that it wasn't their spouse.
Use your neighbor:
Prepare N envelopes with names on them.
Prepare N name sheets, that include the spouse names on them e.g
"Bob (spouse of Molva)"
Than leave the room and ask your neighbor to do the random matching. Presto. Give the envelopes to the persons either personally or via US mail
Marry Christmas
Well, there has to be an element of trust since you could easily cheat, but if you want to simply avoid accidentally seeing the gift assignments, how about assigning a large random numbers to everyone, the create a list for everyone of people and their code numbers, and print individual sheets with for each person with the code of the person they "draw". In that way, without the effort of memorizing the number and looking it up on the list, you likely interpret "Bob got assigned to 0785286741234" as "Bob got assigned to Kelly". I'd probably make the first and last few digits the same for everyone so you can't simply recall that Bob got 7-something and there was only one random entry starting with a 7. Bury the differences deeper into the numerical string. See how they get "lost" visually:
0785253451234 Bob
0785286741234 Kelly
0785238761234 Herman
0785200281234 Lydia