랜덤 숫자 생성기

최솟값과 최댓값 사이에서 랜덤 숫자를 뽑습니다. 하나 또는 여러 개를, 중복을 허용하거나 막아서 뽑을 수 있으며 안전한 난수를 사용합니다.

빠른 범위:

랜덤 숫자 뽑는 방법

  1. 최솟값과 최댓값을 입력합니다. 양 끝 숫자도 포함되므로 1부터 10까지로 정하면 1과 10도 나올 수 있습니다. −50부터 50처럼 음수도 쓸 수 있습니다.
  2. 한 번에 뽑을 숫자 개수를 정합니다. 1개부터 10,000개까지 가능합니다.
  3. 같은 숫자가 두 번 나오면 안 될 때는 중복 없이를, 작은 수부터 차례로 보고 싶을 때는 결과 정렬을 체크합니다.
  4. 생성을 누르거나 입력 칸에서 Enter 키를 누릅니다. 복사를 누르면 결과가 쉼표로 구분된 목록으로 클립보드에 복사됩니다.

빠른 범위 버튼은 주사위(1–6), 1–10, 1–100, 1–1000 같은 자주 쓰는 범위를 넣고 곧바로 숫자 하나를 뽑아 줍니다.

설정에 대해 알아 둘 점

  • 정수만 뽑습니다. 소수를 입력하면 범위 안쪽으로 맞춰집니다. 최솟값 1.5는 2가 되고, 최댓값 9.7은 9가 됩니다.
  • 중복 없이 뽑으려면 숫자가 충분해야 합니다. 1부터 6 사이에서 서로 다른 숫자 10개는 뽑을 수 없으며, 이때는 범위 안에 서로 다른 숫자가 몇 개 있는지 알려 줍니다.
  • 중복은 생각보다 자주 나옵니다. 중복을 허용한 채 1부터 100 사이에서 10개를 뽑으면, 적어도 두 개가 같을 확률이 약 37%입니다. 중복이 문제가 된다면 중복 없이를 체크하세요.
  • 아주 넓은 범위도 됩니다. 범위의 폭은 9,007,199,254,740,992(2의 53제곱)까지 가능합니다. JavaScript가 모든 정수를 정확하게 나타낼 수 있는 한계입니다.

예시

  • 응모권 250장 중 경품 3개 추첨: 최솟값 1, 최댓값 250, 숫자 개수 3, 중복 없이를 체크합니다. 응모권 한 장이 뽑힐 확률은 250분의 3(1.2%)이고, 같은 응모권이 두 번 당첨되는 일은 없습니다.
  • 로또 번호: 1부터 45 사이에서 숫자 6개를 중복 없이, 결과 정렬을 체크해 뽑습니다. 가능한 조합은 8,145,060가지이고, 1, 2, 3, 4, 5, 6을 포함해 모든 조합이 똑같은 확률로 나옵니다.
  • 엑셀 표 표본 검사: 500행 가운데 20행을 확인하려면 1부터 500 사이에서 20개를 중복 없이, 결과 정렬을 체크해 뽑은 뒤 그 행 번호를 위에서부터 차례로 확인합니다.
  • 주사위 두 개: 범위를 1–6, 숫자 개수를 2로 하고 중복을 허용합니다. 이것은 2부터 12 사이에서 숫자 하나를 뽑는 것과 다릅니다. 실제 주사위 두 개를 던지면 합이 7이 될 확률은 36분의 6이지만, 합이 2가 될 확률은 36분의 1뿐입니다. 주사위를 하나씩 따로 뽑아야 이 확률이 그대로 재현됩니다.

무작위성은 어떻게 만들어지나요?

간단한 숫자 생성기는 대부분 JavaScript의 Math.random()을 씁니다. 게임이나 애니메이션에는 충분하지만, 브라우저가 그 결과를 예측할 수 없다고 보장하지는 않습니다. 이 도구는 대신 브라우저의 암호학적으로 안전한 난수 생성기인 crypto.getRandomValues()를 씁니다. 운영체제가 모은 엔트로피를 바탕으로 하며, 암호화 키를 만들 때 쓰는 것과 같은 종류의 난수입니다.

난수를 원하는 범위의 숫자로 바꾸는 과정에도 주의가 필요합니다. 흔히 쓰는 “난수를 범위 크기로 나눈 나머지” 방식은 미세하게 치우칩니다. 예를 들어 0–255 사이의 난수 1바이트를 100으로 나눈 나머지를 쓰면, 0–55는 각각 세 가지 경우로 나올 수 있지만 56–99는 두 가지 경우뿐입니다. 이 생성기는 끝에 남는 불완전한 구간의 난수를 버리고 다시 뽑기 때문에, 범위 안의 모든 숫자가 정확히 같은 확률을 가집니다. 중복 없이 범위의 상당 부분을 뽑을 때는 중복이 나올 때마다 다시 뽑는 대신 피셔-예이츠(Fisher–Yates) 방식으로 범위 전체를 섞어 앞에서부터 가져옵니다.

활용 아이디어

  • 수업: 출석번호로 발표할 학생을 뽑거나, 풀어 볼 문제 번호나 읽을 쪽수를 정합니다.
  • 게임: 잃어버린 주사위 대신 쓰거나, 순서를 정하거나, 무작위 이벤트를 굴립니다.
  • 이벤트 추첨: 응모권 번호, 댓글 순번, 신청서 행 번호처럼 참가자에게 번호를 매긴 뒤 당첨자를 뽑습니다.
  • 업무와 공부: 품질 검사용 표본을 고르거나, 테스트 케이스를 배정하거나, 테스트용 값을 만듭니다.

숫자가 아니라 이름 목록에서 뽑으려면 랜덤 이름 뽑기를, 추첨 과정을 여러 사람에게 보여 주고 싶다면 룰렛 돌림판을 쓰세요. 비밀번호는 그 용도로 만든 비밀번호 생성기를 쓰는 것이 좋습니다.

자주 묻는 질문

나중에 같은 숫자를 다시 뽑을 수 있나요?

아니요. 지정할 수 있는 시드가 없고, 누를 때마다 서로 독립된 새 추첨이라 결과를 재현할 수 없습니다. 공개 이벤트처럼 다른 사람이 추첨을 확인할 수 있어야 한다면, 화면을 녹화하거나 설정과 결과가 함께 보이도록 캡처해 두세요.

한동안 안 나온 숫자는 곧 나올 차례인가요?

아니요. 매번의 추첨은 이전 결과와 상관이 없으므로, 최근 50번 동안 한 번도 나오지 않은 숫자라도 다음에 나올 확률은 다른 숫자와 정확히 같습니다.

소수도 뽑을 수 있나요?

직접은 안 되지만 범위를 늘려서 쓸 수 있습니다. 0과 1 사이에서 소수 둘째 자리까지의 값이 필요하면 0부터 100 사이에서 숫자를 뽑아 100으로 나누면 됩니다.

공식 추첨에 써도 되나요?

무작위성은 일반적인 추첨에 충분히 강합니다. 다만 복권처럼 법으로 규제되는 추첨이나 일부 경품 행사에는 당첨자를 뽑고 입회하는 방법에 관한 규정이 있을 수 있으니, 해당하는 규칙을 먼저 확인하세요.