Przejdź do głównej treści
LibraTool logoLibraTool

Rzut monetą i koło fortuny za darmo

Rzuć wirtualną monetą, zakręć dostosowywanym kołem lub losowo wybierz z listy opcji. Używa kryptograficznie bezpiecznej losowości przeglądarki — nie jest to weryfikowalne publiczne losowanie, dlatego unikaj regulowanych konkursów.

Działa offline po wczytaniu

🔒 Wszystkie trzy korzystają z kryptograficznie bezpiecznego generatora liczb losowych przeglądarki: wynik zostaje wybrany najpierw, a następnie animowany — moneta to prawdziwe 50/50, koło jest kręcone do już wybranego wyniku, a losowanie opcji jest bezstronne. Nic nie opuszcza Twojego urządzenia. Jest to uczciwe do codziennego użytku, ale nie jest to weryfikowalne publiczne losowanie, dlatego unikaj regulowanych konkursów lub decyzji o wysokiej wartości.

Typowe zastosowania

  • Rzuć Monetą, aby Podjąć DecyzjęUżyj uczciwego rzutu wirtualnej monety, aby podejmować szybkie, bezstronne decyzje, gdy masz wątpliwości między dwiema opcjami.
  • Obrócić Kołem do Losowych Przypisań ZespołuUżyj konfigurowalnego koła, aby losowo przypisywać członków zespołu do zadań, ról lub grup.
  • Losowy Selektor Ucznia do Sal LekcyjnychUżyj koła lub selektora opcji, aby losowo wezwać uczniów, przypisać grupy lub wybrać wolontariuszy.
  • Wirtualny Rzut Monetą do SportuRzuć uczciwą monetą, aby określić strony zespołu, pierwszą posiadłość, kolejność serwisu lub inne decyzje sportowe.
  • Losowy Selektor do Giveaway'ówWybierz losowego zwycięzcę z listy wpisów za pomocą Selektora Opcji - przejrzysty i sprawiedliwy.

Jak to działa

Wszystkie trzy tryby — rzut monetą, koło losujące i wybór opcji — używają wbudowanego w przeglądarkę Web Crypto API (crypto.getRandomValues) do wylosowania wyniku, a animacja działa w całości po stronie klienta dzięki transformacjom CSS i requestAnimationFrame. W żadnym momencie nie jest używany serwer.

  1. 1
    Web Crypto wybiera zwycięzcę
    Przed rozpoczęciem animacji crypto.getRandomValues wypełnia Uint32Array kryptograficznie losową 32-bitową liczbą całkowitą. Operacja modulo odwzorowuje ją na liczbę opcji (2 dla orła/reszki, N dla koła lub wyboru), więc każdy wynik ma dokładnie równe prawdopodobieństwo.
  2. 2
    Kąt obrotu jest obliczany tak, by trafić w wynik
    W przypadku monety kod oblicza najkrótszy dodatkowy obrót (ponad bieżący skumulowany kąt), który kończy się właściwą stroną do góry — orzeł przy 0°, reszka przy 180° — a następnie dodaje 5 pełnych obrotów, aby wyglądało to jak prawdziwe koziołkowanie. Koło działa tak samo: znajduje przesunięcie kątowe, które ustawia zwycięski wycinek pod wskaźnikiem, dodaje 6 pełnych obrotów i stosuje niewielkie losowe odchylenie, aby wskaźnik nie zatrzymywał się zawsze dokładnie na środku wycinka.
  3. 3
    Animację napędzają przejścia CSS i requestAnimationFrame
    Moneta i koło animują się przez transformację CSS z krzywą wygładzania cubic-bezier zastosowaną do jednej skumulowanej wartości obrotu — po ustawieniu kąta nie jest potrzebny JavaScript w każdej klatce. Wybór opcji używa za to requestAnimationFrame: w każdej klatce kwadratowo rosnący interwał decyduje, czy przesunąć podświetlenie, co daje zwalnianie jak w automacie, zawsze kończące się na wcześniej ustalonym zwycięzcy.
  4. 4
    Wynik jest ujawniany i zapisywany w historii sesji
    Po zakończeniu animacji uruchamia się setTimeout (1,3 s dla monety, 4,3 s dla koła) i zapisuje wynik w stanie. Tryb monety prowadzi bieżącą historię sesji do 24 rzutów z liczbą orłów i reszek. Użytkownicy z włączonym prefers-reduced-motion pomijają animację całkowicie i od razu widzą wynik.

Powiązane narzędzia

Często zadawane pytania