Assign gifts for 3–100 participants with no self-gifts, exclusions and no repeated last-year pairs. Local to your browser; the organizer can see all assignments.
A finite augmenting-path algorithm finds a perfect matching between givers and recipients. Self-gifts and every exclusion are removed first. Every successful result uses each giver and recipient exactly once. Candidate order uses Web Crypto, but valid matchings are not guaranteed equally likely.
If impossible, the tool shows a group of giver IDs with fewer available recipients than givers: an explicit conflict certificate, not an endless reroll. Remove or change exclusions before trying again.
For print: cut around each bordered card, fold on the dashed line and keep the recipient half inward. Printing reveals every pair to the organizer. No private links, email delivery or accounts are provided.
Method source: finite bipartite matching / augmenting paths. Sedgewick and Wayne, Algorithms: bipartite matching. Updated 18 October 2026.
Create teams for several rounds · Choose one option on the wheel
Each participant gives and receives exactly once. A finite bipartite matching algorithm excludes self-gifts, specified exclusions and past giver-to-recipient assignments. Impossibility is explained by a specific group with too few available recipients.
Names stay in your browser. This is a local in-person draw: the organizer sees all pairs. Print cards fold with the recipient inside; there are no private links or server rooms.
Enter one participant per line. Set exclusions by entry number and optionally import last-year giver_id,recipient_id CSV using the same participant order. Assign gifts, check the result and print the cards. Save on this device only when you choose; Clear deletes the saved project.
Methods, privacy and limitations · Editorial policy and corrections