Losowanie

Kości, monety, losowania i koło fortuny — każdy wynik pochodzi z entropii Twojego systemu operacyjnego albo z ziarna, które sam wybierzesz, aby każdy mógł powtórzyć losowanie i je sprawdzić.

Liczby i gry

3

Losowania

3

Imiona i drużyny

3

Wybierz kształt losowania

Wybór zależy głównie od tego, jak wynik musi wyglądać dla osób, które na niego patrzą.

Liczba albo zestaw liczb — generator liczb losowych dla zdefiniowanego przez Ciebie zakresu, liczby lotto dla piętnastu gier z ustalonymi zasadami, kości, gdy potrzebujesz notacji kości i modyfikatorów zamiast płaskiego zakresu.

Jeden zwycięzca z listy — wybór imienia/nazwiska, gdy chcesz po prostu wynik, koło fortuny, gdy widownia patrzy, a dramaturgia jest właśnie po to.

Tak albo nie — rzut monetą.

Wszyscy podzieleni na grupy — generator drużyn, który rozdziela metodą round-robin, więc 7 osób na 3 grupy wychodzi jako 3/2/2, zamiast wrzucania reszty do ostatniej grupy.

Gra rozgrywana w czasie — prowadzący bingo, 75, 90 albo 99 kul, sterowany z jednego ekranu.

Sprawdzanie cudzego losowania — weryfikator losowania, jedyne narzędzie tutaj, które niczego nie generuje.

Co odróżnia tę kategorię

Każda strona potrafi wygenerować losową liczbę. Trudniejszym problemem jest wygenerowanie takiej, którą sceptyczny uczestnik zaakceptuje później, a to łańcuch przechodzący przez wszystkie narzędzia tutaj, a nie funkcja pojedynczego z nich.

Działa to tak. Uruchamiasz losowanie z ziarnem (seed) — wartością, którą wybierasz sam, albo którą narzędzie losuje i pokazuje Ci. Ziarno sprawia, że losowanie jest odtwarzalne: każdy, kto zna ziarno i tę samą listę, otrzyma ten sam wynik, za każdym razem. Samo w sobie to za mało, bo organizator mógłby uruchamiać losowania z różnymi ziarnami, aż jedno wypadnie wygodnie, i opublikować tylko to jedno ziarno.

Dlatego losowanie otrzymuje też odcisk palca (fingerprint) listy, na której zostało przeprowadzone. Opublikowanie ziarna i odcisku palca przed losowaniem zobowiązuje Cię jednocześnie do uczestników i do metody. Później każdy może wkleić certyfikat do weryfikatora, który przelicza wynik i sprawdza, czy ziarno, lista i rezultat są ze sobą zgodne. Zmień imię, dodaj spóźnione zgłoszenie albo podmień zwycięzcę, a odcisk palca przestanie się zgadzać.

To nie dowodzi, że organizator jest uczciwy. Dowodzi, że to losowanie, na tej liście, dało ten wynik — co wcześniej było niemożliwe do sprawdzenia przez kogokolwiek innego.

Kiedy nie chcesz ziarna

Zostaw ziarno puste, a losowanie skorzysta z crypto.getRandomValues() zamiast tego: entropii Twojego systemu operacyjnego, a nie odtwarzalnej sekwencji. To właściwy wybór dla wszystkiego, gdzie odtwarzalność byłaby wadą, a nie zaletą — wybór hasła, podział rachunku albo rozstrzygnięcie sporu. Nikt nie musi kontrolować, które z was myje naczynia.

Dlaczego losowanie w przeglądarce bije fizyczny przedmiot

Prawdziwa moneta jest odrobinę obciążona sposobem, w jaki wytłoczono jej strony, i pada tak, jak zaczynała, marginalnie częściej niż nie. Tania kostka do gry jest gorsza: formowane oczka usuwają różną ilość materiału z każdej ściany, więc strona z szóstką jest odrobinę lżejsza. Żadne z tych obciążeń nie ma znaczenia w grze planszowej i żadnego nie da się usunąć samą starannością.

Losowanie obliczone z puli entropii systemu operacyjnego nie dziedziczy żadnej fizycznej asymetrii. To nie jest „tak dobre jak” prawdziwa moneta — pod względem uczciwości jest lepsze.

Byłbym wdzięczny, gdybyś udostępnił te strony znajomym, dodał je do zakładek lub linkował do nich. Dziękuję! 🙏