본문으로 바로가기
바로계산
개발·보안

난수 생성기

범위를 정해 무작위 숫자를 뽑습니다. 중복 없이 뽑기와 정렬도 됩니다.

결과

아직 뽑지 않았습니다.

난수 생성기란?

난수 생성기는 정해진 범위에서 무작위 숫자를 뽑습니다. 추첨, 순서 정하기, 제비뽑기, 로또 번호 선택처럼 치우치지 않은 선택이 필요할 때 씁니다.

이 도구는 브라우저의 crypto.getRandomValues를 씁니다. 자바스크립트의 Math.random보다 예측이 어려운 암호학적 난수원이라 추첨에 쓰기에 적합합니다. 생성된 숫자는 서버로 전송되지 않고 브라우저 안에서만 만들어집니다.

사용 방법

  1. 최소값과 최대값으로 범위를 정합니다. 음수도 넣을 수 있습니다.
  2. 뽑을 개수를 정합니다.
  3. '중복 없이 뽑기'를 켜면 같은 숫자가 두 번 나오지 않습니다. 로또 번호처럼 쓸 때 켭니다.
  4. '다시 뽑기'를 누르면 새로 뽑고, 최근 10회 기록이 아래에 남습니다.

위쪽 버튼으로 로또, 주사위, 동전, 제비뽑기 설정을 한 번에 맞출 수 있습니다.

계산 방법

[중복 허용]
  각 숫자 = 최소값 + (0 이상 범위크기 미만의 난수)

[중복 없음]
  범위 전체를 배열로 만들어 피셔-예이츠 방식으로 섞고 앞에서 필요한 개수만 꺼낸다
중복 없이 뽑을 때 '다시 뽑아 겹치면 버리기'를 쓰지 않아, 범위가 좁아도 멈추지 않습니다.
용도범위개수중복
로또 번호1 ~ 456개없음
주사위1 ~ 61개허용
동전 던지기1 ~ 21개허용
발표 순서 (10명)1 ~ 1010개없음
백분율 추첨1 ~ 1001개허용

활용 예시

반 학생 30명의 발표 순서를 정하려면 범위를 1~30, 개수를 30으로 하고 '중복 없이 뽑기'를 켭니다. 1부터 30까지가 무작위 순서로 모두 나오므로 그 순서대로 발표하면 됩니다.

범위보다 많이 뽑으라고 하면 범위 전체만 나옵니다. 1~5에서 중복 없이 10개를 요청하면 5개만 나옵니다. 더 뽑을 숫자가 없기 때문입니다.

자주 묻는 질문

정말 무작위인가요?
브라우저의 crypto.getRandomValues를 쓰므로 운영체제가 제공하는 암호학적 난수원을 사용합니다. 추첨이나 게임 용도로는 충분히 예측 불가능합니다. 다만 공식 추첨처럼 법적 효력이 필요한 경우에는 검증된 추첨 절차를 따라야 합니다.
같은 숫자가 연속으로 나오는데 고장난 건가요?
정상입니다. 1~10에서 두 번 연속 같은 숫자가 나올 확률은 10분의 1로 드물지 않습니다. 무작위는 고르게 분포한다는 뜻이 아니라 각 뽑기가 독립적이라는 뜻입니다. 겹치지 않게 하려면 '중복 없이 뽑기'를 켜세요.
로또 번호를 이걸로 뽑으면 당첨 확률이 높아지나요?
달라지지 않습니다. 모든 번호 조합의 확률이 같기 때문에 어떤 방식으로 뽑아도 814만분의 1입니다. 번호 선택의 수고를 덜어 주는 용도로만 쓰세요.
뽑은 숫자가 저장되나요?
저장되지 않습니다. 최근 10회 기록은 화면에만 남고 새로 고치면 사라집니다. 서버로 전송되는 것도 없습니다. 필요하면 '복사'로 따로 보관하세요.
소수나 문자도 뽑을 수 있나요?
정수만 뽑습니다. 문자나 이름을 추첨하려면 목록에 번호를 붙여 두고 번호를 뽑는 방식으로 쓰면 됩니다.

계산 기준 · 브라우저의 Web Crypto API(crypto.getRandomValues)를 난수원으로 씁니다. 중복 없이 뽑을 때는 피셔-예이츠 셔플을 부분 적용해 범위가 좁은 경우에도 편향이나 무한 재시도가 생기지 않도록 했습니다. 모든 계산은 브라우저에서 이루어지며 입력과 결과가 서버로 전송되지 않습니다.

개발·보안 더보기