본문으로 건너뛰기

무료 동전 던지기 & 룰렛

가상 동전을 뒤집거나 사용자 정의 가능한 휠을 회전하거나 옵션 목록에서 임의로 선택합니다. 브라우저의 암호화 방식으로 안전한 난수를 사용합니다 — 검증 가능한 공개 추첨이 아니므로 규제되는 콘테스트는 피하세요.

한 번 로드하면 오프라인에서도 작동

🔒 세 가지 모두 브라우저의 암호화 방식으로 안전한 난수 생성기를 사용합니다. 결과는 먼저 선택된 후 애니메이션됩니다 — 동전은 진정한 50/50, 휠은 이미 선택된 결과로 회전, 선택기는 편향되지 않습니다. 아무것도 기기에서 나가지 않습니다. 이는 일상적인 사용에 공정하지만 검증 가능한 공개 추첨이 아니므로 규제되는 콘테스트나 고가 결정은 피하세요.

주요 용도

  • 의사 결정을 위해 동전을 던지기두 옵션 사이에 막혀 있을 때 공정한 가상 동전 던지기를 사용하여 빠르고 편견 없는 결정을 내립니다.
  • 팀 무작위 할당용 스핀 휠사용자 정의 가능한 스핀 휠을 사용하여 팀 멤버를 작업, 역할 또는 그룹에 무작위로 할당합니다.
  • 교실용 무작위 학생 피커스핀 휠 또는 옵션 피커를 사용하여 무작위로 학생에게 질문하거나, 그룹을 할당하거나, 자원봉사자를 선택합니다.
  • 스포츠용 가상 동전 던지기팀 측, 첫 번째 소유권, 서브 순서 또는 기타 스포츠 결정을 결정하기 위해 공정한 동전을 던집니다.
  • 경품 행사용 무작위 피커옵션 피커를 사용하여 응모자 목록에서 무작위 우승자를 선택합니다. 투명하고 공정합니다.

사용 방법

동전 던지기, 돌림판, 선택지 뽑기 세 가지 모드 모두 브라우저 내장 Web Crypto API(crypto.getRandomValues)로 당첨 결과를 생성한 다음, CSS 변환과 requestAnimationFrame으로 애니메이션을 전적으로 클라이언트 측에서 구동합니다. 서버는 전혀 관여하지 않습니다.

  1. 1
    Web Crypto가 당첨자를 선택
    애니메이션이 시작되기 전에 crypto.getRandomValues가 Uint32Array를 암호학적으로 무작위인 32비트 정수로 채웁니다. 모듈로 연산으로 이를 선택지 수(앞/뒤는 2, 돌림판이나 뽑기는 N)에 매핑하므로 모든 결과의 확률이 정확히 같습니다.
  2. 2
    결과에 멈추도록 회전 각도 계산
    동전의 경우 현재 누적 각도에 더해 올바른 면이 위로 오는 최단 추가 회전(앞면 0°, 뒷면 180°)을 계산한 뒤, 실제로 굴러가는 것처럼 보이도록 5바퀴를 더합니다. 돌림판도 마찬가지로 당첨 칸이 포인터 아래로 오는 각도 차이를 찾아 6바퀴를 더하고, 포인터가 항상 칸의 정중앙에 멈추지 않도록 작은 무작위 흔들림을 적용합니다.
  3. 3
    CSS 전환과 requestAnimationFrame으로 애니메이션 구동
    동전과 돌림판은 누적 회전 값 하나에 cubic-bezier 이징 곡선을 적용한 CSS transform으로 움직이므로, 각도가 정해진 뒤에는 프레임별 JavaScript가 필요 없습니다. 선택지 뽑기는 대신 requestAnimationFrame을 사용합니다. 매 프레임 이차적으로 늘어나는 간격에 따라 강조 표시를 이동할지 정해, 항상 미리 정해진 당첨자에 멈추는 슬롯머신식 감속을 만듭니다.
  4. 4
    결과 공개 및 세션 기록에 저장
    애니메이션이 끝나면(동전 1.3초, 돌림판 4.3초) setTimeout이 실행되어 결과를 상태에 기록합니다. 동전 모드는 앞/뒤 횟수와 함께 최대 24번의 던지기 기록을 세션 동안 유지합니다. prefers-reduced-motion이 켜진 사용자는 애니메이션 없이 바로 결과를 봅니다.

관련 도구

자주 묻는 질문