Перейти к основному содержимому
LibraTool logoLibraTool

Монетка и колесо случайностей — бесплатно

Бросьте виртуальную монету, раскрутите настраиваемое колесо или случайно выберите из списка опций. Использует криптографически защищённую случайность вашего браузера — не проверяемый публичный розыгрыш, поэтому избегайте регулируемых конкурсов.

Работает офлайн после загрузки

🔒 Все три используют криптографически защищённый генератор случайных чисел вашего браузера: результат выбирается сначала, затем анимируется — монета это истинный 50/50, колесо раскручивается до уже выбранного результата, и выборщик беспристрастен. Ничего не покидает ваше устройство. Это справедливо для повседневного использования, но это не проверяемый публичный розыгрыш, поэтому избегайте регулируемых конкурсов или высокостоимостных решений.

Частые применения

  • Бросьте монету, чтобы принять решениеИспользуйте справедливый виртуальный бросок монеты, чтобы принимать быстрые и беспристрастные решения, когда вы застряли между двумя вариантами.
  • Спин-колесо для случайных назначений командыИспользуйте настраиваемое спин-колесо для случайного назначения членов команды задачам, ролям или группам.
  • Средство выбора случайного студента для классовИспользуйте спин-колесо или средство выбора опций для случайного опроса студентов, назначения групп или выбора добровольцев.
  • Виртуальный бросок монеты для спортаБросьте справедливую монету, чтобы определить стороны команды, первое владение, порядок подачи или другие спортивные решения.
  • Генератор случайных чисел для розыгрышейВыберите случайного победителя из списка записей, используя средство выбора опций — прозрачно и честно.

Как это работает

Все три режима — бросок монеты, вращающееся колесо и выбор опции — используют встроенный API Web Crypto браузера (crypto.getRandomValues) для генерации выигрышного результата, а затем управляют анимацией полностью на клиенте с помощью CSS-трансформаций и requestAnimationFrame. Сервер не задействован ни в одной точке.

  1. 1
    Web Crypto выбирает победителя
    Перед началом любой анимации crypto.getRandomValues заполняет Uint32Array криптографически случайным 32-битным целым числом. Операция по модулю сопоставляет его с числом опций (2 для орла/решки, N для колеса или выбора), так что каждый результат имеет точно равную вероятность.
  2. 2
    Угол вращения рассчитывается, чтобы попасть на результат
    Для монеты код вычисляет кратчайший дополнительный поворот (поверх текущего накопленного угла), который заканчивается правильной стороной вверх — орёл на 0°, решка на 180° — затем добавляет 5 полных оборотов, чтобы это выглядело как настоящее падение. Колесо делает то же самое: находит угловое смещение, которое приводит выигрышный сектор под указатель, добавляет 6 полных оборотов и применяет небольшое случайное дрожание, чтобы указатель не всегда останавливался точно в центре сектора.
  3. 3
    CSS-переходы и requestAnimationFrame управляют анимацией
    Монета и колесо анимируются через CSS transform с кривой смягчения cubic-bezier, применённой к единому накопленному значению вращения — после установки угла не требуется JavaScript для каждого кадра. Выбор опции вместо этого использует requestAnimationFrame: на каждом кадре квадратично растущий интервал определяет, продвигать ли подсветку, создавая замедление в стиле игрового автомата, которое всегда останавливается на заранее определённом победителе.
  4. 4
    Результат раскрывается и записывается в историю сессии
    setTimeout срабатывает, когда анимация завершается (1,3 с для монеты, 4,3 с для колеса), и записывает результат в состояние. Режим монеты ведёт текущую историю сессии до 24 бросков со счётчиками орла/решки. Пользователи с включённым prefers-reduced-motion полностью пропускают анимацию и сразу видят результат.

Похожие инструменты

Часто задаваемые вопросы