룰렛 돌리기
선택지를 한 줄에 하나씩 넣고 원판을 돌립니다. 옵션마다 가중치를 주면 그 비율대로 확률이 바뀌고, 원판의 칸 넓이도 같은 비율로 그려집니다.
바로 답
옵션 2~12개를 넣고 원판을 돌리면 하나가 뽑히며, 각 옵션의 확률은 가중치 합에 대한 비율입니다.
근거: 가중치 3·2·1이면 50%·33.3%·16.7%이고, 원판의 칸 각도도 180°·120°·60°로 같은 비율입니다(합계 360°). 뽑기는 crypto.getRandomValues로 가중치 합 범위의 정수를 균등하게 뽑아 정합니다.
룰렛 실행
아직 돌리지 않았습니다.‘돌리기’를 누르면 원판이 돌아가고 결과가 표시됩니다.
최근 결과 (10회까지)
| 옵션 | 가중치 | 확률 | 칸 각도 |
|---|
가중치는 언제 쓰나요
기본값은 모두 1이라 모든 옵션의 확률이 같습니다. 가중치는 “특정 메뉴가 더 자주 나오게 하고 싶다”처럼 확률을 의도적으로 다르게 만들 때 씁니다. 예를 들어 메뉴 후보 4개 중 하나를 두 배로 자주 뽑고 싶다면 그 옵션의 가중치만 2로 두면 됩니다.
가중치는 확률을 감추는 장치가 아닙니다. 아래 표처럼 입력 즉시 옵션별 확률과 각도를 함께 보여 주므로, 진행 전에 참가자에게 화면을 보여 주고 시작하면 됩니다.
옵션 수에 따른 칸 각도
표가 잘려 보이면 좌우로 넘겨 전체 열을 확인하세요.
| 옵션 수 | 한 칸 각도 | 확률 | 읽기 |
|---|---|---|---|
| 2 | 180° | 50% | 동전 던지기와 같은 조건 |
| 3 | 120° | 33.3% | 글자가 가장 크게 보이는 구성 |
| 4 | 90° | 25% | 기본값으로 쓰는 구성 |
| 6 | 60° | 16.7% | 메뉴 후보 6개 |
| 8 | 45° | 12.5% | 벌칙 8개처럼 항목이 짧을 때 |
| 12 | 30° | 8.3% | 글자가 잘리므로 4자 이내 권장 |
확률 계산 방법
확률은 가중치 ÷ 가중치 합계입니다. 가중치를 4·2·1·1로 주면 합계가 8이므로 확률은 50%·25%·12.5%·12.5%, 각도는 180°·90°·45°·45°가 됩니다. 화면의 표는 이 계산을 입력값에 대해 매번 다시 수행한 결과입니다.
뽑기는 가중치 합계 범위(위 예에서는 0~7)에서 정수 하나를 균등하게 뽑고, 그 값이 어느 옵션 구간에 들어가는지로 정합니다. 그래서 같은 가중치를 가진 옵션끼리는 확률이 정확히 같습니다.
계산 규칙과 한계
- 옵션 수 — 2개 이상 12개 이하입니다. 12개를 넘으면 한 칸이 30° 아래로 좁아져 글자가 읽히지 않습니다.
- 가중치 — 정수 1~10입니다. 소수나 0은 받지 않으며, 0을 넣으면 그 옵션이 나올 수 없게 되므로 허용하지 않습니다.
- 난수 —
crypto.getRandomValues를 씁니다. 애니메이션은 결과를 정한 뒤 그 칸에서 멈추도록 각도를 계산하는 표시용 동작입니다. - 이력 — 최근 10회만 화면에 남고 새로 고치면 사라집니다. 저장소에 기록하지 않습니다.
- 용도 — 메뉴·역할·발표자 정하기 같은 일상 용도입니다. 상품이나 금전이 걸린 추첨의 공정성 보증 수단이 아닙니다.
자주 묻는 질문
원판 넓이와 확률이 다르게 보이면 어떻게 하나요?
넓이는 가중치 비율로 그리므로 표의 확률과 항상 같습니다. 입력을 바꾼 뒤 ‘적용’을 누르지 않으면 원판은 이전 상태로 남으니, 값을 고친 뒤에는 ‘옵션·가중치 적용’을 눌러 확인하세요.
같은 옵션이 연속으로 나오면 조작인가요?
아닙니다. 확률이 25%인 옵션이 두 번 연속 나올 확률은 6.25%이고, 네 번 중 한 번은 그런 일이 생깁니다. 이전 결과는 다음 결과에 영향을 주지 않습니다.
옵션 이름이 길면 어떻게 되나요?
칸 안에서 잘려 보일 수 있습니다. 12개 구성이면 4자 이내, 4~6개 구성이면 6자 이내를 권합니다. 확률 표에는 전체 이름이 그대로 나옵니다.
결과를 저장할 수 있나요?
지금 화면의 원판을 ‘이미지로 저장(PNG)’ 버튼으로 내려받을 수 있습니다. 옵션과 가중치를 담은 ‘재현 링크 복사’도 있어 같은 설정을 다른 사람에게 그대로 보낼 수 있습니다. 최근 10회 결과는 화면에만 남고 저장되지 않으며, 뽑기 기록은 서버로 전송되지 않습니다.