Ai nevoie să extragi câștigătorul unui concurs, să asculți un elev sau să decizi cine duce gunoiul? Acest selector aleatoriu online și gratuit extrage corect din orice listă lipită. Pune intrările în caseta „Elemente” — câte una pe rând, sau separate prin virgule —, setează de câte ai nevoie cu „Număr” și apasă „Generează”. O listă are nevoie de cel puțin două intrări și susține până la 1000, fiecare de maximum 200 de caractere.
Fiecare alegere este făcută direct în browserul tău folosind Web Crypto API (crypto.getRandomValues), care oferă valori criptografice puternic aleatoare din sursa de aleatoriu a sistemului tău. Lista ta nu este trimisă niciodată către un server, nu este înregistrată și nu o vedem niciodată — iar acest lucru contează mai mult aici decât la majoritatea generatoarelor, deoarece ceea ce lipesc oamenii este, de obicei, o listă de clienți, un catalog școlar sau un set de nume de colegi. „Încărcați din fișier” menține aceeași promisiune: browserul citește fișierul și umple caseta local, fără ca ceva să fie încărcat undeva.
Opțiunile sunt făcute pentru formatele de liste pe care oamenii chiar le folosesc. Opțiunea „Separator” este fixată pe „Automat”, care citește sfârșiturile de rând și virgulele și deduce pe care dintre cele două le folosește lista ta, astfel încât o listă copiată dintr-un tabel, dintr-un mesaj text sau dintr-un document funcționează fără reformatare. Blochează setarea pe „Linie nouă”, „Virgulă” sau „Spațiu” atunci când datele tale amestecă formatele — și reține că „Spațiu” este întotdeauna o alegere intenționată și niciodată automată, deoarece nume complete, de exemplu, conțin ele însele spații, iar o divizare implicită după spații ar strica mai multe liste decât ar repara. Setarea „Număr” decide câte intrări se extrag, de la 1 la 100. Extragi trei câștigători din 200 de participanți? Lipește participanții, setează „Număr” la 3 și apasă „Generează”. Două comenzi se aplică abia când valoarea este 2 sau mai mare, stând dezactivate până atunci: „Fără duplicate”, care decide dacă aceeași intrare poate fi extrasă de două ori, și „Format de ieșire”, care stabilește cum sunt separate rezultatele — „Câte unul pe linie”, „Separate prin spații” sau „Separate prin virgule”.
Un rând de butoane direct în caseta „Elemente” face modificările de care ai avea nevoie în altă parte. „Încărcați din fișier” aduce o listă direct dintr-un fișier text sau CSV. „Amestecă” schimbă aleatoriu ordinea rândurilor din casetă, „Sortează” le așează în ordine alfabetică, ordonând numerele în mod natural (iar un al doilea clic inversează ordinea), și „Șterge” golește caseta complet. Butonul „Completați cu date eșantion” aruncă o scurtă listă de exemplu pentru a putea încerca selecția cu un singur clic, în timp ce „Extindeți pentru a se potrivi conținutului” mărește caseta pentru a afișa o listă lungă integral, iar „Restrângeți la dimensiunea implicită” o reduce la loc. Chiar sub rezultat, butonul „Copiază tot” trimite fiecare alegere în clipboard, „Salvează în fișier” le scrie pe disc, iar secțiunea „Istoric” păstrează ultimele 10 extrageri în browser, așadar un rezultat anterior se află mereu la un singur clic distanță.
Cum se face concret o alegere? Atunci când apeși pe „Generează”, pagina cere browserului valori aleatoare prin intermediul crypto.getRandomValues și le folosește pentru a alege poziții în lista ta, în loc să se bazeze pe o funcție pseudorandomizată din JavaScript precum Math.random(). Transformarea unei valori brute pe 32 de biți într-o poziție este momentul în care instrumentele eșuează adesea în liniște: calculul modulo dintre valoare și lungimea listei este abordarea evidentă și parțială totodată, deoarece, cu excepția cazului în care 2^32 se împarte exact la lungimea listei, intrările de la începutul listei sunt alese puțin mai des decât celelalte. Acest defect se numește prejudecată modulo (modulo bias) și este măsurabil, nu doar teoretic. Acest instrument respinge în schimb orice valoare care depășește cel mai mare multiplu exact al lungimii listei și extrage din nou — o tehnică numită eșantionare prin respingere (rejection sampling). Costă câteva extrageri în plus, dar obține o garanție exactă în locul uneia aproximative. Poziția în listă nu schimbă absolut nimic: prima și ultima intrare poartă exact aceeași probabilitate la fiecare extragere.
Setarea „Fără duplicate” separă două tipuri fundamental diferite de extrageri, iar statistica le denumește pe fiecare în parte. Cu setarea pornită, selectorul amestecă o copie a listei cu ajutorul algoritmului Fisher-Yates și alege intrările direct de sus — similar cu a trage bilete dintr-o pălărie fără a le pune înapoi, astfel încât nimeni nu este ales de două ori, iar fiecare grup de acea mărime este la fel de probabil. Aceasta este eșantionarea fără înlocuire (sampling without replacement), și exact asta îți trebuie pentru câștigători ai unor premii, echipe și ordinea pe ture. Cu setarea oprită, fiecare alegere se face în mod independent din întreaga listă, așadar aceeași intrare poate pica de mai multe ori — aceasta este eșantionarea cu înlocuire (sampling with replacement), ceea ce îți trebuie atunci când toți rămân eligibili în fiecare rundă, ca în extrageri repetate sau într-o analiză statistică rapidă. Niciunul dintre moduri nu este mai corect decât celălalt; ele răspund la nevoi diferite.
O extragere corectă nu trebuie să pară corectă. Extrage cinci nume din zece și vei vedea în mod regulat două alegeri care stăteau una lângă alta în lista originală, sau același nume apărut de două ori la rând imediat ce permiți duplicatele — oricare dintre acestea este absolut firesc. Fiecare extragere este independentă: alegerile anterioare nu influențează în niciun fel alegerile viitoare și nimeni nu devine vreodată „dator” cu un câștig. Instinctul care insistă altfel este eroarea pariorului (gambler's fallacy) și este același instinct care ne face groaznici atunci când încercăm noi înșine să alegem aleatoriu — dacă suntem puși să alegem la întâmplare, evităm prima și ultima intrare din listă, evităm repetarea unui nume și ne împrăștiem opțiunile mult mai uniform decât o face șansa. Un rezultat care arată suspect de ordonat reprezintă amprenta unui om; aleatoriul autentic produce aglomerări.
De ce să folosești acest selector aleatoriu?
- Extragere exclusiv în browser: lista ta este citită pe dispozitiv și nu e trimisă nicăieri
- Aleatoriu din Web Crypto API: securizat criptografic, fără a folosi Math.random()
- Fără prejudecată modulo: eșantionarea prin respingere păstrează toate șansele egale
- Orice format al listei: linie nouă, virgulă sau spațiu, direct fără a retransforma textul
- Modul „Fără duplicate”: extrage câștigători sau echipe, garantând că nimeni nu e ales de două ori
- Suportă până la 1000 de intrări și extrage până la 100 de alegeri într-o singură rulare
- Instrumente incluse: încarcă dintr-un fișier, amestecă, sortează, șterge, date eșantion
- Istoricul și salvarea în fișier: păstrează rezultatul pe care s-ar putea să trebuiască să îl justifici
- Nelimitat și gratuit: fără conturi, fără praguri de utilizare, nimic salvat pe serverele noastre
Extragerile la sorți sunt necesare oriunde o decizie trebuie să reziste eventualelor contestații. Profesorii ascultă elevii la tablă fără a avea favoriți și împart o clasă în grupuri de proiect. Streamerii și marketerii extrag câștigătorii concursurilor în fața unui public care trebuie să creadă în rezultat. Managerii împart sarcinile pentru care nimeni nu se oferă voluntar, iar echipele decid ordinea prezentărilor sau cine este de gardă. Cercetătorii extrag un eșantion aleatoriu de fișe pentru audit. Familiile pun capăt disputelor despre ce să vizioneze, iar un grup flămând alege restaurantul. Punctul comun este o selecție pe care oricine o poate explica ulterior: extragerea folosește un proces aleatoriu criptografic, are loc exclusiv pe dispozitivul tău, iar secțiunea „Istoric” păstrează rezultatul dacă cineva întreabă de el mai târziu.
Acest selector are câteva limite oneste care merită știute. Selectorul nu poate extrage mai multe intrări distincte decât conține lista ta — trei câștigători au nevoie de cel puțin trei nume — și se oprește la 1000 de intrări a câte 200 de caractere fiecare, cu un număr maxim de 100 de alegeri într-o extragere. Funcțiile „Amestecă” și „Sortează” lucrează linie cu linie, așadar o listă cu virgule lipită pe un singur rând se reordonează doar odată ce devine o intrare pe rând; iar ambele butoane reorganizează caseta în locul extragerii, procesul rămânând absolut la fel de corect indiferent de ordinea în care se află lista. Totodată, fiecare intrare are intenționat exact aceeași greutate statistică, așa că o extragere unde un nume ar trebui să conteze dublu va avea nevoie ca acel nume să fie listat de două ori. În cadrul acestor limite, garanția este una puternică — fiecare intrare din lista ta deține exact aceeași șansă, la absolut fiecare extragere.