CodeKitHub
Instrumente generatoare

Generator de tragere la sorți a numelor

Ultima actualizare:

Tragerea la sorți a numelor pentru un Secret Santa sau un schimb de cadouri ridică o problemă reală de matematică: o amestecare complet aleatorie poate atribui accidental pe cineva chiar sieși, iar reluarea tragerii până „arată bine” nu mai e cu adevărat aleatorie. Acest instrument rezolvă corect problema — introduci numele tuturor, iar el calculează o derangare (o amestecare cu garanția matematică că nimeni nu ajunge pe propriul nume), apoi ascunde fiecare rezultat sub un buton de dezvăluire, ca fiecare participant să își verifice propria atribuire pe un ecran comun fără să vadă rezultatele altora.

Ce este acest instrument?

O derangare este un concept matematic precis: o permutare (reordonare) a unei mulțimi în care niciun element nu rămâne pe poziția inițială. Aplicat la un schimb de cadouri, înseamnă amestecarea numelor tuturor astfel încât nimeni să nu fie asociat cu sine — exact constrângerea de care are nevoie o tragere corectă, și exact ce o amestecare naivă gen `array.sort(() => Math.random() - 0.5)` NU garantează.

Instrumentul generează o derangare amestecând repetat lista printr-un algoritm aleatoriu și verificând constrângerea de auto-atribuire, folosind `crypto.getRandomValues()` ca sursă de aleatorism — aceeași sursă criptografic sigură folosită de Generatorul de parole al site-ului.

Design-ul cu buton de dezvăluire rezolvă o problemă practică separată a tragerii în grup: afișarea tuturor atribuirilor pe ecran deodată strică surpriza pentru toată lumea simultan. Ascunzând rezultatul fiecărei persoane sub propriul buton, un singur dispozitiv poate fi trecut din mână în mână (sau un ecran partajat) ca fiecare să-și verifice doar propriul nume.

De ce să-l folosești?

  • E petrecerea de Crăciun la birou și cineva tocmai și-a amintit că nimeni nu a organizat Secret Santa — introduci cele 14 nume din chat-ul echipei și tragi perechile chiar în ședință, înainte ca lumea să plece la masă.
  • Grupul familiei nu se poate pune de acord cine cumpără pentru cine anul acesta, iar jumătate din grup nu vrea să instaleze încă o aplicație doar pentru asta — deschizi instrumentul pe un telefon, îl treci pe la masă, și fiecare apasă propriul buton de dezvăluire.
  • Cineva a părăsit grupul cu două zile înainte de schimb și acum foaia din anul trecut e greșită — reintroduci lista actualizată și tragi din nou în câteva secunde, în loc să corectezi manual perechile.
  • Ai încercat o amestecare rapidă `sort(() => Math.random() - 0.5)` pentru un schimb la muncă și cineva a fost atribuit propriei persoane — acest instrument există exact pentru a exclude asta printr-o derangare garantată, nu o reamestecare norocoasă.
  • Vrei ca dezvăluirea să aibă loc live într-un apel video fără ca atribuirea altcuiva să apară pe ecran — partajezi ecranul, iar fiecare îți spune când să apeși rândul lui, ca doar el să vadă rezultatul.

Cum se folosește

  1. Scrie numele fiecărui participant pe un rând separat — cel puțin 3 nume diferite.
  2. Apasă „Trage perechile” — instrumentul calculează o derangare validă, ca nimeni să nu fie asociat cu sine.
  3. Rândul fiecărui participant afișează numele cu un rezultat ascuns — treceți dispozitivul din mână în mână sau partajați ecranul, iar fiecare apasă propriul buton „Apasă pentru a dezvălui”.
  4. Apasă din nou pentru a ascunde rezultatul după ce cineva l-a verificat, pregătind ecranul pentru următoarea persoană.

Exemplu

Intrare

Alice, Bogdan, Carmen, Dan

Rezultat

Alice → Carmen, Bogdan → Dan, Carmen → Bogdan, Dan → Alice

Fiecare rulare produce o derangare validă diferită — acesta este doar un exemplu de rezultat. Observă că nimeni nu e atribuit propriei persoane, singura constrângere strictă a unei trageri reale de Secret Santa, pe care o amestecare simplă nu o garantează.

Derangare vs. amestecare aleatorie simplă

O amestecare simplă și o derangare par similare, dar doar una e sigură pentru un schimb de cadouri.

MetodăPoate atribui pe cineva sieși?Corectă dacă retragi până „arată bine”?
Amestecare aleatorie simplăDa — posibilitate reală, mai ales în grupuri miciNu — respingerea manuală a rezultatelor rele denaturează rezultatul
Derangare (acest instrument)Nu — exclusă matematic prin construcțieN/A — orice rezultat valid respectă deja constrângerea

Instrumente similare

Pentru alte trageri aleatorii și generatoare, încearcă-le pe acestea.

→ Generator de nume de dragoni · Generator de nume de băuturi · Generator de nume pentru fotbal fantasy

Cum organizezi o tragere de grup fără să-ți strici singur surpriza

Partea cea mai delicată a unei trageri de Secret Santa nu e aleatorismul — e să te asiguri că persoana care organizează tragerea nu vede accidental atribuirile tuturor în timp ce o configurează. Câteva obiceiuri ajută.

  • Introdu lista de nume și apasă „Trage perechile” fără să derulezi tu prin rezultate — dă dispozitivul direct primului participant în loc să vezi cine cui i-a picat.
  • Dacă ești organizator și participant totodată, roagă pe altcineva să țină dispozitivul pentru dezvăluirea ta, sau așteaptă la final ca nimeni să nu se grăbească urmărindu-te.
  • Pentru un grup la distanță, partajează ecranul, dar ține cursorul departe de butoane — anunță al cui e rândul și lasă fiecare să apese propriul rând prin voce sau chat.
  • Dacă grupul e mare, urmează aceeași ordine ca planul de așezare sau lista de participanți, ca nimeni să nu fie sărit sau verificat de două ori din greșeală.

Întrebări frecvente

Ce se întâmplă dacă un nume e introdus de două ori?

Instrumentul cere ca fiecare nume să fie unic înainte de a trage — dacă detectează un rând duplicat, îți cere să corectezi lista, deoarece doi participanți cu nume identic ar face imposibilă distingerea rezultatelor lor.

Poate cineva să-și tragă propriul nume?

Nu — instrumentul calculează specific o derangare, o amestecare cu proprietatea matematică că niciun element (persoană) nu ajunge pe propria poziție inițială. Garanția este impusă de algoritm, nu lăsată la voia întâmplării ca la o amestecare simplă.

Care e numărul minim de persoane necesar?

Trei. Cu doar doi oameni, o derangare e imposibilă fără ca ei să fie mereu asociați unul cu celălalt, ceea ce nu e cu adevărat aleatoriu, așa că instrumentul cere minimum trei participanți.

Cum păstrăm confidențialitatea dacă toți ne uităm la același ecran?

Rezultatul fiecărui participant e ascuns sub propriul buton „Apasă pentru a dezvălui”, în loc să fie afișat tot deodată. Treceți dispozitivul (sau partajați ecranul) fiecărei persoane pe rând, lăsați-o să dezvăluie și să noteze doar rândul ei, apoi apăsați din nou pentru a ascunde înainte de a trece mai departe.

Numele sau rezultatul tragerii sunt trimise către un server?

Nu. Totul — citirea numelor, calcularea derangării și afișarea butoanelor — are loc integral în browser. Nimic nu e încărcat, iar închiderea filei șterge totul, deci nu rămâne niciun istoric care ar putea strica surpriza.

Pot exclude anumite perechi, cum ar fi cuplurile care nu ar trebui să cumpere una pentru alta?

Nu momentan — derangarea garantează doar că nimeni nu e atribuit propriei persoane, nu exclude alte perechi specifice, precum soți sau frați. Dacă asta contează pentru grupul tău, verifică rezultatul și retrage manual dacă apare o pereche pe care voiai s-o eviți.

Ce se întâmplă dacă reîncarc sau închid fila în timpul dezvăluirii?

Tragerea se pierde — nimic nu e salvat între încărcări, intenționat, ca să nu rămână un istoric care ar putea strica surpriza mai târziu. Reintrodu numele și trage din nou; vei primi o nouă derangare validă, diferită.

Pot doi oameni face trageri separate și obține rezultate diferite pentru aceleași nume?

Da — fiecare tragere e reîmprospătat aleatorizată folosind `crypto.getRandomValues()`, așa că introducerea aceleiași liste de două ori va produce foarte probabil două derangări valide diferite, nu aceeași pereche repetată.

Există un număr maxim de participanți?

Nu e impusă nicio limită dură — algoritmul de derangare funcționează la fel indiferent dacă introduci 3 nume sau 30. Grupurile foarte mari pot dura puțin mai mult la calcul, deși practic e imperceptibil sub câteva sute de nume.

Ordinea în care introduc numele influențează cine e atribuit cui?

Nu — amestecarea e aleatorizată independent de ordinea de introducere, deci scrierea numelor alfabetic, după plan de așezare sau la întâmplare nu afectează corectitudinea sau rezultatul tragerii.

Instrumente similare