난수 생성기 random
지정한 범위에서 난수를 생성합니다. 중복 허용 여부와 정렬, 구분자를 선택할 수 있습니다.
이 도구가 하는 일
무작위 숫자가 필요한 상황은 다양합니다. 추첨으로 당첨자를 뽑거나, 테스트 데이터에 넣을 임의의 값을 만들거나, 표본을 무작위로 고를 때입니다.
이 도구는 브라우저의 암호학적 난수 생성기를 사용합니다. 여기서 중요한 것은 편향 처리입니다. 난수를 특정 범위에 맞출 때 나머지 연산만 쓰면 범위 앞쪽 값이 조금 더 자주 나오는 편향이 생깁니다. 이 도구는 범위를 균등하게 나눌 수 없는 값이 나오면 그 값을 버리고 다시 뽑는 방식으로 모든 숫자가 같은 확률을 갖도록 합니다.
중복 없이 뽑는 옵션을 쓰면 로또 번호처럼 서로 다른 값만 나옵니다. 이때 범위에 있는 숫자보다 많은 개수를 요청하면 뽑을 수 없으므로 오류를 알려 줍니다. 결과의 합계와 평균도 함께 표시됩니다.
언제 사용하나요
이벤트 당첨자를 추첨할 때, 테스트 데이터에 넣을 임의의 수치를 만들 때, 표본을 무작위로 선정할 때, 로또 번호처럼 중복 없는 조합을 뽑을 때, 무작위 순서로 발표 순번을 정할 때 사용합니다.
입력과 출력 예시
1 ~ 45 범위에서 6개, 중복 없이
3, 11, 19, 27, 33, 42 (매번 다름)
오름차순 정렬 옵션을 켜면 정렬되어 나옵니다.
1 ~ 10 범위에서 20개, 중복 없이
오류 — 범위에 값이 10개뿐입니다
중복을 허용해야 뽑을 수 있는 조건입니다.
주의사항
공개 추첨처럼 공정성이 중요한 자리에는 결과를 검증할 수 있는 절차가 필요합니다. 이 도구는 결과를 기록하거나 증명하지 않으므로, 참가자에게 공개해야 하는 추첨이라면 화면을 녹화하거나 검증 가능한 방식을 별도로 마련하십시오. 또한 이 도구는 보안 토큰 생성용이 아닙니다. 난수 자체는 암호학적으로 안전하지만 숫자 범위가 좁으면 추측하기 쉬우므로, 세션 ID나 비밀번호에는 비밀번호 생성기나 UUID 도구를 사용해야 합니다.
자주 묻는 질문
정말 균등하게 나오나요?
나머지 연산에서 생기는 편향을 제거하는 방식으로 구현했습니다. 범위를 균등하게 나눌 수 없는 값은 버리고 다시 뽑으므로 모든 숫자의 확률이 같습니다.
같은 결과를 다시 만들 수 있나요?
없습니다. 시드를 지정하는 기능이 없어 실행할 때마다 새로운 값이 나옵니다.