디지털 룰렛 돌리기 & 제비뽑기 추첨기
점심 메뉴, 벌칙, 당첨자 추첨용 커스텀 Canvas 회전 룰렛 및 랜덤 제비뽑기
지금 계산한 분들이 함께 많이 사용하는 도구
사용 방법 및 안내
디지털 룰렛 돌리기 & 제비뽑기 추첨기는 점심 메뉴 추천, 회식 자리 배정, 사내 경품 이벤트, 교실 발표 순서처럼 공정한 무작위 선택이 필요한 일을 브라우저에서 즉시 처리합니다. 명단과 결과는 서버로 전송되지 않으며, 모든 난수는 Web Cryptography API의 crypto.getRandomValues로 생성합니다. 일반 Math.random은 엔진마다 품질이 다르고 예측 가능성이 거론되지만, 암호학적 난수는 균등 분포에 가깝고 당첨 인덱스를 치우침 없이 고릅니다.
룰렛 탭은 당첨자를 애니메이션이 끝난 뒤에 역산하지 않습니다. 돌리기 버튼을 누르는 순간 N개 항목 중 하나를 난수로 확정하고, 그 칸의 중심 근처가 상단 포인터에 오도록 목표 각도를 계산한 뒤 Canvas에서 5~9바퀴를 감속 회전합니다. 각 항목은 동일한 부채꼴(2파이/N)을 차지하며 2개부터 12개까지 넣을 수 있습니다. 회전이 끝날 때까지 목록 추가·삭제와 탭 전환은 잠겨 중간에 칸을 바꿔 결과를 조작할 수 없습니다.
제비뽑기 탭은 이름 N명을 넣고 복원하지 않는 비복원 추출로 한 명 또는 여러 명을 뽑습니다. 이미 나온 이름은 남은 주머니에서 빠지므로 같은 사람이 두 번 당첨되지 않습니다. 뽑을 인원 수를 지정하면 그 수만큼 차례로 난수 인덱스를 고르고, 짧은 미리보기 뒤에 뽑힌 순서가 기록됩니다. 초기화를 누르면 원래 명단이 다시 주머니에 들어갑니다. 계산과 화면 갱신은 모두 사용자 기기에서 이루어지며 페이지를 새로고침하면 결과는 사라집니다.
자주 묻는 질문 (FAQ)
룰렛 추첨 결과는 완전히 공정한가요?
네. 브라우저 Web Cryptography API의 crypto.getRandomValues로 당첨 인덱스를 먼저 고른 뒤, 그 칸이 상단 포인터에 오도록 목표 각도를 계산해 회전합니다. 각 항목은 동일한 각도(1/N)를 차지하며 애니메이션이 결과를 만들지 않습니다.
룰렛과 제비뽑기는 무엇이 다른가요?
룰렛은 같은 목록에서 반복해서 한 명을 뽑을 수 있는 복원 추첨입니다. 제비뽑기는 뽑힌 이름을 주머니에서 빼는 비복원 추출이라 남은 인원만 다음에 뽑히며, 발표 순서나 경품 순번을 정할 때 적합합니다.
제비뽑기에서 이미 뽑힌 사람이 다시 나올 수 있나요?
없습니다. 한 번 뽑힌 이름은 남은 명단에서 제거됩니다. 같은 구성으로 다시 뽑으려면 초기화 버튼으로 원래 명단을 주머니에 되돌리면 됩니다.
돌리는 도중에 항목을 바꾸면 어떻게 되나요?
추첨 중이거나 제비를 뽑는 동안 목록 추가·삭제와 탭 전환이 잠깁니다. 당첨이 난수로 먼저 확정된 뒤 그 각도로만 움직이므로 중간에 칸을 바꿔 결과를 조작할 수 없습니다.
입력한 이름과 결과가 서버에 저장되나요?
저장되지 않습니다. 항목, 이름, 난수, Canvas 회전은 모두 사용자 브라우저 메모리에서만 처리되며 새로고침하면 초기 예시 목록으로 돌아갑니다.