Homsy

Secret Santa-generator

Typ ieders naam, houd stellen apart en trek. Iedereen krijgt een eigen link om op de telefoon te openen en te zien voor wie hij iets koopt — geen e-mails, geen account, geen app. Zet er een budget en een datum bij en die gaan in elke link mee. Print in plaats daarvan QR-kaartjes om uit te delen, en als je regels een eerlijke trekking onmogelijk maken, zegt de generator dat en noemt hij wie vastzit.

Aisha Ben Carla Dev Elena Finn Grace Hugo

Voorbeeldgroep — voeg je eerste naam toe en hij verdwijnt.

8 mensen, 3 regels. Klaar om te trekken.

Namen per persoon

Tik twee namen op de ring aan om ze apart te houden. Laat dit aan als je zelf ook meedoet.

Wie doet er mee

8 van 40

Typ een naam en druk op Enter, of plak een hele lijst — één per regel of gescheiden door komma’s. Tot 40 mensen.

Apart houden

Stellen, huisgenoten, de paren van vorig jaar — iedereen die iemand niet moet trekken.

  • Aisha ⇄ Ben
  • Dev ⇄ Elena
  • Finn → Grace

De gegevens

Optioneel. Wat je hier invult, staat op elke onthullingspagina en elk kaartje.

Zet deze generator op je site

Plak deze twee regels in een willekeurige pagina — een intranet op het werk, de site van een club, een familieblog. De trekking werkt binnen het kader, en de links die hij uitdeelt, openen hier.

Voorbeeld bekijken

De trekking duurt een minuut. De rest van december bestaat uit lijstjes, en Homsy zet de cadeaus, het eten en wie wat meeneemt op ieders telefoon.

Je namen, uitsluitingen, gegevens en de trekking worden in deze browser bewaard, zodat je terug kunt komen en een link opnieuw kunt sturen. Er is geen account, en als je je browsergegevens wist, is de lijst weg.

Hoe de trekking werkt, en wat er in een link staat

Iedereen mag iedereen trekken behalve zichzelf en wie je van hem apart hebt gehouden. „Elkaar” haalt beide richtingen tussen twee mensen weg, „één kant op” maar één. Voordat er iets getrokken wordt, controleert de generator of er überhaupt een trekking bestaat die zich aan elke regel houdt. Bij één naam per persoon is dat een koppelingsprobleem — kan iedereen een andere naam krijgen die hij mag trekken — en het wordt exact beantwoord, niet door proberen en hopen. Is het antwoord nee, dan noemt de pagina de oorzaak: een groep gevers die samen minder namen mogen trekken dan ze zelf mensen zijn. De huwelijksstelling van Hall zegt dat een trekking precies dan bestaat als zo’n groep er niet is, dus die groep noemen is de reden noemen.

Bij één naam per persoon is de trekking een schudding. De hele lijst wordt geschud met de cryptografische toevalsgenerator van de browser, en de schudding wordt alleen gehouden als iedereen bij iemand is uitgekomen die hij mag trekken; anders wordt er opnieuw geschud, tot twintigduizend keer. Alleen de schuddingen houden die slagen, geeft elke geldige trekking precies dezelfde kans. Pas als de regels zo weinig geldige trekkingen overlaten dat alle twintigduizend schuddingen mislukken, valt de pagina terug op een willekeurige zoektocht, die er altijd een vindt maar niet elke trekking dezelfde kans belooft.

Bij twee namen per persoon is de controle een stroomprobleem: iedereen geeft twee keer, iedereen krijgt twee keer, niemand trekt dezelfde persoon twee keer. De trekking zelf is twee rondes van de schudding voor één naam, waarbij de tweede de eerste niet mag herhalen. Dat komt dicht bij een gelijke kans voor elke geldige trekking met twee namen zonder precies gelijk te zijn, en dat zeggen we liever dan het mooier te maken.

Het getal in de tekst onder de tool is gewoon rekenwerk. Als iedereen in een groep één naam uit een hoed trekt, is het deel van de trekkingen waarin niemand zijn eigen naam krijgt het aantal permutaties zonder dekpunt gedeeld door het aantal volgordes: 9 van 24 bij vier mensen, 44 van 120 bij vijf, 14.833 van 40.320 bij acht. Vanaf vier mensen blijft het tussen 36% en 38%, en het komt uit op één gedeeld door e, ongeveer 36,8%.

Elke link draagt de trekking van één persoon: de naam van de gelegenheid, de eigen naam, de naam of namen voor wie diegene koopt met eventuele hints die je toevoegde, het budget, de datum, je notitie, een trekkingscode van vier tekens en de minuut van de trekking. Hij is door elkaar gehusseld zodat een naam niet in één oogopslag te lezen is in het voorbeeld van een bericht. Dat is geen versleuteling: wie een link opent, ziet wat erin staat, dus stuur iedereen alleen zijn eigen link. De geprinte kaartjes dragen dezelfde link als QR-code, met foutcorrectieniveau M, dat volgens de QR-standaard ongeveer 15% van een beschadigde code kan herstellen, of niveau L, ongeveer 7%, voor een link die te lang is voor M. De grens van veertig mensen is onze eigen keuze — daarboven worden de ring met namen en de pagina met kaartjes onleesbaar. Het agendabestand op de onthullingspagina bevat één afspraak van een hele dag op de dag van de cadeauruil met een herinnering een week ervoor, en noemt de dag en het budget maar nooit de persoon. De namen, uitsluitingen, gegevens en trekking worden in deze browser bewaard, zodat de organisator een kwijtgeraakte link opnieuw kan sturen; er is geen account.

Waar deze getallen vandaan komen

  1. 1. On Representatives of Subsets (Hall's marriage theorem) — P. Hall, Journal of the London Mathematical Society, 1935
  2. 2. A000166: Subfactorial or rencontres numbers, or derangements — The On-Line Encyclopedia of Integer Sequences
  3. 3. ISO/IEC 18004:2015 — QR Code bar code symbology specification — International Organization for Standardization
  4. 4. Crypto: getRandomValues() method — MDN Web Docs, Mozilla

Elk getal hierboven komt uit de code die op deze pagina draait. Waar een getal onze eigen inschatting is en geen gepubliceerd cijfer, zegt de toelichting dat en noemt ze geen bron. Methode voor het laatst gecontroleerd op 28 september 2026.

Waarom lootjes uit een hoed misgaan

Briefjes in een hoed werken nog voor vier mensen rond de keukentafel. Hoe groter de groep, hoe slechter het gaat, en de rekensom laat zien waarom. Voor elke groep van vier of meer ligt de kans dat niemand zijn eigen naam trekt tussen 36% en 38% — de meeste trekkingen uit een hoed moeten dus over, en de laatste die trekt kan helemaal niet opnieuw, want zijn briefje is het enige dat over is. Een generator doet dat opnieuw trekken voor je, onzichtbaar, zo vaak als nodig.

Uitsluitingen zijn de tweede reden dat een hoed faalt. Die kan niet weten dat twee van de namen een stel zijn dat elkaar toch al iets zou geven, of dat dezelfde twee elkaar vorig jaar trokken. Elke regel die je toevoegt, maakt een trekking uit de hoed kwetsbaarder, en vanaf een bepaald punt bestaat er helemaal geen trekking die zich aan elke regel houdt — iets wat een hoed je nooit vertelt. Deze generator controleert eerst, en als niet alle regels kunnen gelden, noemt hij de mensen die klem zitten en de namen waartussen ze klem zitten, zodat je weet welke uitsluiting je kunt schrappen.

Het derde probleem is de organisator. Iemand moet de trekking doen, en in de meeste groepen wil die persoon ook verrast worden. Hier blijven de paren verborgen tenzij je ze wilt zien, en ziet iedereen zijn eigen naam op zijn eigen telefoon, dus de organisator kan meedoen zoals iedereen.

Spreek het budget en de datum af vóór de trekking, niet erna: een bedrag op elk kaartje voorkomt dat één persoon drie keer zoveel uitgeeft als de rest. Voor de rest van de lijst helpt kerstcadeaus plannen je een bedrag per persoon te kiezen, en de Kerstplanner om te printen zet de cadeaus, het diner en het aftellen op drie vellen. Hoort de Secret Santa bij een familiekerst, dan behandelt het kerstdiner plannen wie wat meeneemt, en verdeelt Rekenhulp eerlijk kosten delen achteraf de gedeelde kosten.

De eerlijke grens heeft elke link: hij bereikt alleen de persoon naar wie je hem stuurt. Raakt iemand de zijne kwijt, open deze pagina dan op het apparaat waarop je hebt getrokken — de trekking staat in die browser — en stuur hem opnieuw.

Veelgestelde vragen

Hoe werkt deze Secret Santa-generator?

Typ ieders naam, geef aan wie elkaar niet mag trekken, zet er een budget en een datum bij als je wilt, en druk op „Lootjes trekken”. Iedereen krijgt een eigen link. Stuur die via WhatsApp, sms, Slack of iets anders dat een link kan versturen; opent iemand hem, dan pakt een cadeautje op de telefoon zichzelf uit en laat zien voor wie diegene iets koopt, met het budget, de datum en elke hint die je hebt toegevoegd.

Heb ik ieders e-mailadres nodig?

Nee. Er zijn geen e-mails, geen accounts en niets om je voor aan te melden. De generator geeft je één link per persoon en je verstuurt die zoals jullie groep toch al met elkaar praat. Zit een deel van de groep in dezelfde ruimte, print dan de QR-kaartjes en deel die uit.

Hoe voorkom ik dat stellen elkaar trekken?

Houd ze apart. Kies twee namen en kies „elkaar” voor een stel of huisgenoten, of „één kant op” als alleen de een de ander niet mag trekken — de paren van vorig jaar bijvoorbeeld. Je kunt ook twee namen op de ring aantikken. Elke trekking houdt zich aan elke regel die je instelt, en de ring toont elke regel als een knoop tussen de twee namen.

Wat als er geen geldige trekking is?

De generator zegt het voordat hij trekt en vertelt wie vastzit — bijvoorbeeld: „Aisha, Ben en Carla kunnen samen alleen uit Dev en Elena trekken: drie mensen, twee namen.” Dat gebeurt als de uitsluitingen een groep minder namen laten om uit te trekken dan er mensen in zitten. Haal een van hun uitsluitingen weg en trek opnieuw.

Kan de organisator zien wie wie heeft getrokken?

Alleen als die dat wil. De trekking gebeurt op de telefoon of computer van de organisator, en de paren blijven verborgen tot de organisator ze aanzet, dus een organisator die zelf meedoet kan de trekking doen en toch verrast worden. Alle links staan wel op het scherm van de organisator, en wie een link opent, ziet wat erin staat — stuur iedereen dus alleen zijn eigen link en open ze niet zelf.

Kan iedereen voor twee mensen kopen?

Ja. Zet „Namen per persoon” op twee en iedereen trekt twee namen en wordt twee keer getrokken, zonder dat iemand dezelfde persoon twee keer trekt. De uitsluitingen blijven gelden. Er zijn minstens drie mensen nodig, en in een groep met veel uitsluitingen is er eerder geen geldige trekking met twee namen — de generator vertelt je wanneer dat zo is.

Werkt het met een oneven aantal mensen?

Ja. Secret Santa is een ketting, geen verzameling paren, dus elk aantal van drie tot veertig werkt. Met z’n tweeën is er niets geheims aan, dus de generator vraagt om een derde.

Wat gebeurt er als ik opnieuw trek?

Iedereen krijgt een nieuwe link. Links uit de eerdere trekking openen nog steeds en tonen de eerdere trekking, want elke link draagt zijn eigen uitslag. Elke onthullingspagina en elk kaartje toont een trekkingscode van vier tekens en het tijdstip van de trekking, dus vertel de groep welke code telt en stuur de nieuwe links.

Kan ik de lootjes printen?

Ja, op twee manieren. De kaartjes worden met acht per pagina geprint, één per persoon, met de naam op de voorkant en een QR-code die de onthulling opent; knip ze uit en deel ze rond. De lijst print elke naam naast de link, met een vakje om af te vinken als je hem hebt verstuurd. Kies „Opslaan als pdf” in het printvenster als je liever een bestand bewaart.

Is de trekking echt willekeurig?

Ja. Bij één naam per persoon schudt de generator de hele lijst met de cryptografische toevalsgenerator van de browser en houdt hij de schudding alleen als iedereen bij iemand is uitgekomen die hij mag trekken, dus elke geldige trekking heeft dezelfde kans. Bij twee namen per persoon doet hij dat in twee rondes, waarbij de tweede de eerste niet mag herhalen; dat komt dicht bij een gelijke kans zonder precies gelijk te zijn.

Bewaart de generator mijn lijst?

Ja, in deze browser. De namen, uitsluitingen, gegevens en de trekking staan in de lokale opslag van deze browser, zodat je later terug kunt komen en iemand die zijn link kwijt is hem opnieuw kunt sturen. Er is geen account, en als je je browsergegevens wist, is de lijst weg.

Vergelijkbare tools

Houd de rest van december op één lijst met Homsy

De trekking duurt een minuut. De rest van december bestaat uit lijstjes — de cadeaus, het eten, wie wat meeneemt. Homsy zet ze op ieders telefoon, gedeeld met de mensen die de klussen doen.