I was thinking today about the problem of arranging a secret santa that the organizer can participate in -- that is, without requiring any one person to know all the assignments.

One thing led to another and I threw together this: https://github.com/relsqui/secretish-santa

It still does require some trust between participants, but that seems inherent to the secret santa concept already.

GitHub - relsqui/secretish-santa: Barebones secret santa assigner that allows the organizer to participate

Barebones secret santa assigner that allows the organizer to participate - relsqui/secretish-santa

GitHub

@relsqui

You have successfully nerdsniped me. I think I have figured out a peeking-resistant solution that involves asymmetric encryption, but that requires participants who are able to comprehend asymmetric encryption...
1. Everyone generates a private-public key pair, and anonymously submits their public keys to a list.
2. A designated shuffler generates a derangement of the list and encrypts each anonymous public key with a different public key, and posts the list of encrypted keys.
3. Each participant is able to decrypt one anonymous public key from the list. They encrypt their own name with that decrypted public key, and post it. Each person is then able to decrypt one other person's name with their private key, and that person is who they're giving a gift to. Nobody knows who the recipient of their name was, and nobody ever sees anyone's name besides their designated recipient's.

@relsqui

Feeling pretty vindicated by this: https://www.youtube.com/watch?v=4pG8_bWpmaE

Mathematically extra-complicated Secretest Santa 2025

YouTube
@Zrephel okay that is actually delightful
@Zrephel 🤣 apparently one of the people I was actually doing a secret santa with (which is what started this whole thing, of course) works with tom7. small world!