🪙
무료 동전 던지기 & 룰렛
가상 동전을 뒤집거나 사용자 정의 가능한 휠을 회전하거나 옵션 목록에서 임의로 선택합니다. 브라우저의 암호화 방식으로 안전한 난수를 사용합니다 — 검증 가능한 공개 추첨이 아니므로 규제되는 콘테스트는 피하세요.
한 번 로드하면 오프라인에서도 작동
🔒 세 가지 모두 브라우저의 암호화 방식으로 안전한 난수 생성기를 사용합니다. 결과는 먼저 선택된 후 애니메이션됩니다 — 동전은 진정한 50/50, 휠은 이미 선택된 결과로 회전, 선택기는 편향되지 않습니다. 아무것도 기기에서 나가지 않습니다. 이는 일상적인 사용에 공정하지만 검증 가능한 공개 추첨이 아니므로 규제되는 콘테스트나 고가 결정은 피하세요.
주요 용도
- 의사 결정을 위해 동전을 던지기두 옵션 사이에 막혀 있을 때 공정한 가상 동전 던지기를 사용하여 빠르고 편견 없는 결정을 내립니다.
- 팀 무작위 할당용 스핀 휠사용자 정의 가능한 스핀 휠을 사용하여 팀 멤버를 작업, 역할 또는 그룹에 무작위로 할당합니다.
- 교실용 무작위 학생 피커스핀 휠 또는 옵션 피커를 사용하여 무작위로 학생에게 질문하거나, 그룹을 할당하거나, 자원봉사자를 선택합니다.
- 스포츠용 가상 동전 던지기팀 측, 첫 번째 소유권, 서브 순서 또는 기타 스포츠 결정을 결정하기 위해 공정한 동전을 던집니다.
- 경품 행사용 무작위 피커옵션 피커를 사용하여 응모자 목록에서 무작위 우승자를 선택합니다. 투명하고 공정합니다.
사용 방법
동전 던지기, 돌림판, 선택지 뽑기 세 가지 모드 모두 브라우저 내장 Web Crypto API(crypto.getRandomValues)로 당첨 결과를 생성한 다음, CSS 변환과 requestAnimationFrame으로 애니메이션을 전적으로 클라이언트 측에서 구동합니다. 서버는 전혀 관여하지 않습니다.
- 1Web Crypto가 당첨자를 선택애니메이션이 시작되기 전에 crypto.getRandomValues가 Uint32Array를 암호학적으로 무작위인 32비트 정수로 채웁니다. 모듈로 연산으로 이를 선택지 수(앞/뒤는 2, 돌림판이나 뽑기는 N)에 매핑하므로 모든 결과의 확률이 정확히 같습니다.
- 2결과에 멈추도록 회전 각도 계산동전의 경우 현재 누적 각도에 더해 올바른 면이 위로 오는 최단 추가 회전(앞면 0°, 뒷면 180°)을 계산한 뒤, 실제로 굴러가는 것처럼 보이도록 5바퀴를 더합니다. 돌림판도 마찬가지로 당첨 칸이 포인터 아래로 오는 각도 차이를 찾아 6바퀴를 더하고, 포인터가 항상 칸의 정중앙에 멈추지 않도록 작은 무작위 흔들림을 적용합니다.
- 3CSS 전환과 requestAnimationFrame으로 애니메이션 구동동전과 돌림판은 누적 회전 값 하나에 cubic-bezier 이징 곡선을 적용한 CSS transform으로 움직이므로, 각도가 정해진 뒤에는 프레임별 JavaScript가 필요 없습니다. 선택지 뽑기는 대신 requestAnimationFrame을 사용합니다. 매 프레임 이차적으로 늘어나는 간격에 따라 강조 표시를 이동할지 정해, 항상 미리 정해진 당첨자에 멈추는 슬롯머신식 감속을 만듭니다.
- 4결과 공개 및 세션 기록에 저장애니메이션이 끝나면(동전 1.3초, 돌림판 4.3초) setTimeout이 실행되어 결과를 상태에 기록합니다. 동전 모드는 앞/뒤 횟수와 함께 최대 24번의 던지기 기록을 세션 동안 유지합니다. prefers-reduced-motion이 켜진 사용자는 애니메이션 없이 바로 결과를 봅니다.