Secret Santa

A derangement-based matching algorithm for fair, constraint-free gift exchanges

Add participants, hit generate, and the algorithm shuffles everyone into a valid derangement — a permutation where nobody draws their own name. Each match is hidden behind a reveal button so you can pass the screen around without spoiling anyone's assignment.

Try it yourself

Built with

TypeScript Derangement Algorithm CSS Animations