fixmint
RO

Cum alegi câștigătorii unui concurs corect și cum arăți că ai făcut-o

De · · actualizat 8 noiembrie 2026 · 4 min de citit

Ca să alegi un câștigător corect, folosește un generator făcut pentru securitate, dă fiecărei participări aceeași șansă și lasă oamenii să verifice rezultatul după aceea. Cele mai multe nedreptăți dintr-un selector simplu vin din unul dintre două locuri: o sursă slabă de aleatoriu sau o mică greșeală aritmetică numită părtinire modulo. Amândouă se pot remedia. O listă publicată de participări și un jurnal al tragerii sunt cea mai bună dovadă că nimeni nu a ales câștigătorul.

Alegător aleatoriuAlege un câștigător corectÎncearcă gratuit

Aleatoriu real și pseudo-aleatoriu

O sursă de aleatoriu real își trage imprevizibilitatea dintr-un proces fizic, cum ar fi zgomotul electronic. Un generator pseudo-aleatoriu este o formulă. Pornește de la un număr de start (seed), aplică pași deterministi și produce o secvență care arată a întâmplare. Secvența este determinată complet de seed, așa că oricine cunoaște seed-ul și formula poate prezice fiecare număr.

Cele mai multe programe folosesc generatoare pseudo-aleatorii, și asta e în regulă pentru a amesteca o listă de melodii sau pentru a alege un nivel aleatoriu într-un joc. Pentru o tragere la care oamenii au ceva de câștigat, întrebarea este dacă cineva ar putea prezice sau influența rezultatul. Un generator rapid, dar previzibil, este instrumentul greșit.

Folosește generatorul criptografic al browserului

În JavaScript, Math.random() este un generator pseudo-aleatoriu rapid. Documentația lui spune că nu este potrivit pentru criptografie, iar o tragere la premii este o alegere sensibilă din punct de vedere al securității. Funcția crypto.getRandomValues() din Web Crypto completează un tablou cu valori din sursa criptografică de aleatoriu a sistemului de operare. Aceasta este cea de folosit. Generatorul de trageri la sorți o folosește la fiecare alegere, inclusiv la aruncările de monedă și zaruri. Un selector care nu spune ce folosește este mai greu de crezut, așa că întreabă înainte să te bazezi pe el.

Părtinirea modulo, cu un exemplu

Să presupunem că sursa ta dă un octet aleatoriu, adică un număr întreg de la 0 la 255, iar tu vrei una dintre trei participări. Drumul cel mai simplu este să iei restul împărțirii la 3. Pare corect, dar 256 nu se împarte exact în grupe de câte trei.

  • Valorile 0, 3, 6 și așa mai departe până la 255 dau restul 0. Sunt 86 de astfel de valori.
  • Valorile cu restul 1 sunt 85, iar cele cu restul 2 sunt tot 85.

Astfel, participarea 0 apare de 86 de ori din 256, adică aproximativ 33,6%, în timp ce participările 1 și 2 apar de câte 85 de ori, adică aproximativ 33,2%. Diferența este mică, dar este reală și crește pe măsură ce numărul de participări devine mare în comparație cu intervalul sursei.

Soluția este eșantionarea cu respingere (rejection sampling). Tragi o valoare și, dacă ea cade în partea neuniformă rămasă, tragi din nou. Pentru exemplul cu octetul, respingi 255 și accepți doar valorile de la 0 la 254, care se împart exact la trei. Cu un număr aleatoriu pe 32 de biți, partea rămasă este cam o valoare la 4,3 miliarde, deci părtinirea este neglijabilă pentru un concurs. Un selector atent o tratează totuși, pentru că aceeași greșeală devine mai gravă pe măsură ce intervalul se micșorează.

Trageri fără repetări

Dacă ai nevoie de mai mulți câștigători, tragerea de trei ori a unui index aleatoriu poate alege aceeași participare de două ori. Două metode curate evită asta:

  1. Scoate fiecare câștigător din listă, apoi trage din nou din restul.
  2. Amestecă o dată întreaga listă cu metoda Fisher–Yates, apoi ia câștigătorii de sus.

Fisher–Yates parcurge lista de la capăt, schimbă fiecare poziție cu una aleasă aleatoriu, de la ea sau de dinainte, și produce fiecare ordine cu aceeași probabilitate, dacă alegerile aleatorii sunt corecte. Metoda este scurtă, bine înțeleasă și ușor de explicat participanților. Opțiunile Scoate câștigătorii din listă și Fără repetări ale selectorului acoperă ambele metode.

Fă tragerea verificabilă

O tragere corectă este una pe care oricine o poate verifica. Înainte de tragere:

  • Publică participările ca listă numerotată, împreună cu regulile privind cine era eligibil.
  • Publică o amprentă SHA-256 a acelei liste. Orice unealtă SHA-256 poate produce una, de exemplu generatorul hash. O amprentă se schimbă complet dacă se modifică o singură participare, deci lista nu poate fi editată discret după aceea. Aceeași verificare confirmă descărcările; cum verifici suma de control SHA-256 a unei descărcări arată pașii.

În timpul și după tragere:

  • Înregistrează ecranul din momentul în care pornești selectorul până la rezultatul afișat.
  • Publică lista finală cu numărul câștigător, ca oamenii să poată recalcula amprenta și să confirme că nimic nu s-a schimbat.
  • Spune cum a fost aleas câștigătorul, de exemplu „ales cu un selector din browser care folosește sursa criptografică de aleatoriu a sistemului de operare”.

Regulile concursurilor diferă de la o platformă la alta, iar tragerile la premii pot avea cerințe legale care depind de locul în care trăiești. Verifică regulile de promovare ale platformei și legea locală înainte să organizezi unul. Acesta este un ghid general, nu sfat juridic. Când ești gata, alege un câștigător cu generatorul de trageri la sorți.

Cum se face cu fixmint

  1. Alege Nume, apoi lipește participările în Nume, unul pe rând.
  2. Setează Câștigători la numărul de premii. Bifează Scoate câștigătorii din listă, ca nimeni să nu poată câștiga de două ori.
  3. Pentru o tragere cu numere, alege Număr, setează Cel mai mic și Cel mai mare și bifează Fără repetări dacă fiecare număr poate câștiga o singură dată.
  4. Apasă Alege câștigătorii, cu înregistrarea ecranului deja pornită de la început.
  5. Publică participările numerotate, amprenta SHA-256, participarea câștigătoare și modul în care a fost folosit selectorul.

Răspunsuri rapide

Este Math.random() potrivit pentru un concurs?

Este potrivit pentru jocuri și amestecări, dar nu pentru o tragere pe care oamenii o vor verifica, pentru că rezultatul lui poate fi prezis. Folosește o sursă criptografică.

De ce nu iau pur și simplu un număr aleatoriu modulo numărul de participări?

Când intervalul nu se împarte exact, restul este neuniform, deci unele participări sunt puțin mai probabile. Eșantionarea cu respingere elimină această părtinire.

Pot alege mai mulți câștigători dintr-o singură tragere?

Da. Scoate fiecare câștigător înainte de următoarea alegere sau amestecă o dată și ia primele participări. În ambele cazuri, nicio participare nu poate câștiga de două ori.

Tradus din Original în engleză cu ajutorul AI.

Comentarii

    Încă nu sunt comentarii. Fii primul.

    Evaluarea ta (opțional)

    E-mailul tău nu este afișat și nu este păstrat niciodată.

    Copertă pentru The Paperoom Game Night KitThe Paperoom Game Night Kit

    O seară de jocuri de 52 de pagini, de printat: bingo pentru petrecere, puzzle-uri, jocuri de societate și bătălii cu creionul și hârtia, plus planificator și tabele de scor.

    $7.00Cumpără de pe GumroadÎn engleză