랜덤 숫자 생성기

범위·개수·중복 옵션으로 무작위 숫자를 뽑습니다.

조건을 정하고 생성을 누르세요.

경품 추첨에서 당첨 번호를 정하거나, 발표 순서를 뽑거나, 테스트용 숫자 몇 개가 필요할 때 쓰는 도구입니다.

범위와 개수를 정하고 생성을 누르면 조건에 맞는 숫자가 한 줄로 나오고, 그대로 복사해 옮길 수 있습니다.

어떻게 계산되나요

네 가지 입력값

최소값최대값으로 뽑을 범위를, 생성 개수로 몇 개를 뽑을지 정합니다. 체크박스 두 개로 규칙을 더할 수 있습니다.

옵션동작
중복 없이같은 숫자가 두 번 나오지 않습니다
오름차순 정렬뽑은 뒤 작은 수부터 나열합니다

최소값이 최대값보다 크게 들어와도 두 값을 자동으로 바꿔 처리합니다. 범위는 양 끝을 모두 포함하므로 1~45는 45개 값이 후보가 됩니다.

중복 없이 옵션의 한계

범위에 있는 값의 개수보다 많이 뽑을 수는 없습니다. 예를 들어 1~10에서 중복 없이 15개를 요청하면 뽑을 값이 모자라기 때문에 범위가 좁다는 안내가 뜹니다. 이때는 범위를 넓히거나 개수를 줄이면 됩니다.

숫자를 만드는 방식

브라우저의 암호학적 난수(crypto.getRandomValues)에서 32비트 값을 받아 범위로 변환합니다. 이때 단순히 나머지 연산만 쓰면 앞쪽 숫자가 조금 더 자주 나오는 치우침이 생기므로, 범위로 나누어떨어지지 않는 구간의 값은 버리고 다시 뽑습니다. 그래서 모든 숫자가 같은 확률로 나옵니다.

참고

결과는 브라우저에서 계산되며 서버에 남지 않습니다. 공개 추첨처럼 근거를 남겨야 하는 자리라면 화면을 녹화하거나 캡처해 두는 편이 좋습니다.

용어 정리

최소값·최대값
뽑을 범위의 양 끝입니다. 두 값 모두 후보에 포함됩니다.
생성 개수
한 번에 뽑을 숫자의 개수입니다. 1 이상이어야 합니다.
중복 없이
이미 나온 숫자를 다시 뽑지 않는 옵션입니다. 추첨·순서 정하기에 씁니다.
오름차순 정렬
결과를 작은 수부터 정렬해 보여 주는 표시 옵션입니다.
균등 난수
범위 안의 모든 숫자가 같은 확률로 나오도록 만든 난수입니다.

자주 묻는 질문

중복 없이 뽑으려는데 범위가 좁다는 안내가 떠요.

뽑으려는 개수가 범위 안의 값 개수보다 많을 때 나오는 안내입니다. 1~10은 후보가 10개뿐이라 중복 없이 11개를 뽑을 수 없습니다. 최대값을 올리거나 개수를 줄여 보세요.

최소값보다 최대값을 작게 넣으면 어떻게 되나요?

오류로 처리하지 않고 두 값을 서로 바꿔서 계산합니다. 5와 1을 넣어도 1~5 범위로 동작합니다.

매번 다른 결과가 나오는데 같은 결과를 다시 볼 수 있나요?

없습니다. 시드를 지정하는 기능이 없어 생성할 때마다 새 값이 나옵니다. 결과가 필요하면 복사 버튼으로 저장해 두세요.

정말 공평하게 뽑히나요?

암호학적 난수를 쓰고, 치우침이 생기는 구간의 값은 버리고 다시 뽑는 방식이라 범위 안의 숫자가 같은 확률로 나옵니다. 다만 공식 추첨에 쓰려면 기관이 정한 절차를 따르는 것이 우선입니다.

음수나 큰 수도 넣을 수 있나요?

음수도 넣을 수 있고 -50~50 같은 범위도 동작합니다. 다만 매우 큰 수를 넣으면 자바스크립트가 정확히 다루는 정수 범위를 벗어날 수 있으니 상식적인 크기로 쓰는 것이 좋습니다.