사용 방법
- 위에서 주사위, 동전 던지기, 숫자, 목록에서 뽑기 중 고릅니다.
- 주사위는 면 수와 개수를 고르고 "굴리기"를 누릅니다. 2개 이상 굴리면 합계가 함께 나옵니다.
- 숫자는 범위와 뽑을 개수를 정하고, 서로 달라야 하면 "중복 없이"를 체크한 뒤 "뽑기"를 누릅니다.
- 목록에서 뽑기는 한 줄에 하나씩(누가 먼저 할지 정할 이름 등) 입력하고 뽑을 개수를 정한 뒤 "뽑기"를 누릅니다.
예시
2d6 (6면 주사위 2개)
→ 4와 1, 합계 5"굴리기"를 누를 때마다 바뀝니다.
1~45 중 6개, 중복 없이
→ 1~45 사이의 서로 다른 숫자 6개복권식 추첨의 형태일 뿐 실제 어떤 복권도 결정하지 않습니다.
이름 4개 목록에서 1명 뽑기
→ 무작위로 고른 이름 1개누가 먼저 할지, 누가 할 일을 맡을지 정할 때 씁니다.
계산 방식
여기 있는 모든 무작위 선택은 함수 하나로 줄어듭니다. crypto.getRandomValues로 얻은 값에서 어떤 한도 미만의 균등한 정수를 뽑는 함수로, 뽑은 난수 안에 들어가는 한도의 가장 큰 배수보다 작을 때만 쓰고 나머지는 버려서 어떤 나머지도 더 자주 나오지 않게 합니다(비밀번호 생성기와 같은 방식). 주사위, 동전 던지기, 일반 랜덤 숫자는 이것을 바로 쓰고, 중복 없이 뽑기는 이것으로 돌리는 부분 피셔-예이츠 셔플을 써서 아주 큰 범위를 전부 나열하지 않고도 원하는 개수만큼 뽑습니다.
중복 없이 뽑는 경우를 포함해 모든 방식의 계산은 무작위 대신 정해진 값들을 순서대로 내주는 방식으로 테스트합니다.
출처
자주 묻는 질문
- 얼마나 무작위한가요?
- 매번 Web Crypto API의 getRandomValues에서 값을 가져오는데, 브라우저가 비밀번호나 키 생성에 쓰는 것과 같은 암호학적으로 안전한 난수원입니다. 고른 범위를 벗어나는 값은 버려서 어떤 숫자도 다른 숫자보다 더 자주 나오지 않습니다(나머지 연산 편향 없음).
- d100처럼 특이한 주사위도 되나요?
- 네. d4, d6, d8, d10, d12, d20, d100을 제공하며 한 번에 최대 20개까지 굴립니다.
- 숫자나 목록의 "중복 없이"는 무엇인가요?
- 한 번 나온 값을 다시 넣지 않고 뽑으므로 한 번의 추첨에서 같은 숫자나 항목이 두 번 나오지 않습니다. 범위나 목록이 뽑으려는 개수만큼은 있어야 합니다.
- 경품 추첨이나 이벤트에 써도 되나요?
- 무작위로 뽑도록 만들었고 입력한 모든 사람이 같은 확률을 가지지만, 내가 관리하지 않는 페이지의 결과 기록만으로 이벤트 규정에 충분한지는 따져 보세요. 일부 이벤트는 조작되지 않았음을 보일 수 있는 기록을 요구합니다.
- 서버로 전송되는 것이 있나요?
- 아니요. 모든 추첨은 브라우저에서 합니다.
관련 도구
버전 기록
- 1.0.1 — 검색 제목에서 도구의 핵심 작업과 무료·온라인 사용 여부를 더 분명하게 안내합니다.
- 1.0.0 — 첫 공개.