본문으로 건너뛰기
Case Converter Online
ko

랜덤 숫자 생성기

두 값 사이에서 무작위 숫자를 하나 뽑거나 여러 개를 한 번에 뽑습니다. 추첨처럼 겹치지 않게 뽑으려면 중복 없이를 켜세요.

옵션

결과

최근 결과

  1. 최근 결과 10개가 여기에 표시됩니다. 페이지를 떠나면 사라집니다.

랜덤 숫자 생성기로 할 수 있는 일

랜덤 숫자 생성기는 직접 정한 범위에서 정수나 소수를 무작위로 뽑는 난수 생성기입니다. 경품 추첨 번호처럼 숫자 하나를 뽑을 수도 있고, 테스트 데이터, 수업용 게임, 표본 추출에 쓸 숫자 수천 개를 한 번에 뽑을 수도 있습니다. 범위 안의 모든 숫자는 뽑힐 확률이 정확히 같으며, 범위의 양 끝 값도 포함됩니다.

모든 과정은 브라우저 안에서 이루어집니다. 숫자는 서버로 전송되지 않고, 페이지를 떠나면 아무것도 남지 않습니다.

사용 방법

  1. 최솟값에 가장 작은 값을, 최댓값에 가장 큰 값을 입력합니다. 음수도 쓸 수 있습니다.
  2. 원하는 숫자의 개수를 정합니다. 최대 10,000개입니다.
  3. 소수점 자릿수를 고릅니다. 정수만 원하면 “없음 (정수)“를 그대로 둡니다.
  4. 정렬에서 “뽑힌 순서”, “작은 수부터”, “큰 수부터” 중 하나를 고릅니다.
  5. 같은 숫자가 한 번만 나와야 한다면 중복 없이를 켭니다.
  6. 결과 구분 기호를 고릅니다. 줄바꿈, 쉼표와 공백, 공백, 쉼표, 없음 중에서 선택합니다.
  7. 숫자 생성을 누릅니다.

숫자 하나는 결과 아래에 큰 글씨로 표시되고, 여러 개는 스크롤할 수 있는 상자에 나옵니다. 복사를 누르면 전부 복사됩니다. 최근 열 번의 결과는 최근 결과에 남고 항목마다 복사 버튼이 있습니다. 이 목록은 지우기로 비울 수 있으며, 페이지를 떠나거나 새로 고치면 사라집니다.

예시

이 도구의 코드로 실제로 뽑은 결과입니다. 직접 실행하면 결과가 달라지는데, 그것이 바로 무작위라는 뜻입니다.

설정 한 번 실행한 결과
1부터 100, 숫자 1개 74
1부터 6, 숫자 5개 (주사위 굴리기) 5, 4, 1, 5, 2
1부터 49, 숫자 6개, 중복 없이, 작은 수부터 6, 12, 19, 24, 27, 33
0부터 1, 숫자 3개, 소수점 둘째 자리 0.45, 0.44, 0.63
-10부터 10, 숫자 5개, 큰 수부터 6, 5, 3, -7, -7
1000부터 9999, 숫자 3개, 중복 없이 7292, 7269, 5088
1부터 10, 숫자 10개, 중복 없이 9, 5, 2, 10, 3, 4, 1, 7, 8, 6
1부터 45, 숫자 6개, 중복 없이, 작은 수부터 1, 5, 19, 34, 41, 45

1부터 10에서 중복 없이 열 개를 뽑은 줄은 1부터 10을 통째로 섞은 결과입니다. 범위에 숫자가 열 개뿐이므로 모든 숫자가 무작위 순서로 한 번씩 나옵니다. 마지막 줄처럼 1부터 45 사이에서 6개를 중복 없이 뽑으면 로또 6/45와 같은 방식의 번호 조합을 만들 수 있습니다. 재미로 쓰는 번호일 뿐 당첨 확률을 높여 주지는 않습니다.

작동 원리

도구는 crypto.getRandomValues로 브라우저에 난수 비트를 요청합니다. 이 비트를 원하는 범위의 숫자로 바꾸는 데는 주의가 필요합니다. 흔히 쓰는 지름길은 큰 난수를 범위의 크기로 나눈 나머지를 쓰는 방법인데, 이 방법은 조금 불공정합니다. 난수원의 크기가 범위로 딱 나누어떨어지지 않으면 일부 결과가 다른 결과보다 자주 나오기 때문입니다. 이를 모듈로 편향(modulo bias)이라고 합니다.

이를 피하기 위해 생성기는 거부 샘플링(rejection sampling)을 씁니다. 범위로 고르게 나누어떨어지는 가장 큰 난수 구간을 계산하고, 뽑힌 값이 그 구간 밖에 있으면 버리고 다시 뽑습니다. 버려지는 경우는 드물어서 결과는 여전히 즉시 나오며, 범위 안의 모든 숫자가 같은 확률을 갖게 됩니다.

소수는 범위를 확대해서 처리합니다. 0부터 1까지 소수점 둘째 자리라면 0부터 100 사이에서 뽑은 다음 100으로 나눕니다. 이렇게 하면 소수 결과도 공정합니다.

중복 없이를 켜면 같은 값이 두 번 뽑히지 않습니다. 범위가 작으면 전체를 섞은 뒤 앞에서부터 가져오고, 범위가 크면 하나씩 뽑으면서 이미 나온 값은 건너뜁니다. 어느 쪽이든 1부터 10이든 1부터 10억이든 비복원 추출로 공정하게 뽑힙니다.

팁과 한계

  • 양 끝 값도 포함됩니다. 1부터 6 범위에서는 실제 주사위처럼 1과 6이 모두 나올 수 있습니다.
  • 중복은 자연스러운 일입니다. 중복 없이를 켜지 않으면 같은 숫자가 두 번 나오는 것이 정상입니다. 위의 주사위 예시에서도 다섯 번 중 5가 두 번 나왔습니다.
  • 범위가 너무 작을 때. 범위에 있는 숫자보다 많은 숫자를 중복 없이 요청하면 짧은 목록 대신 안내 메시지가 나옵니다.
  • 아주 넓은 범위. 최솟값과 최댓값의 차이는 약 9천조(2의 53제곱)까지 가능합니다. 범위가 매우 넓고 소수점 자릿수가 많으면 이 한계에 걸려 메시지가 나올 수 있습니다.
  • 공식 추첨용은 아닙니다. 생성기 자체는 공정하지만, 공식 복권이나 경품 추첨에는 검증된 장비나 입회인이 필요한 경우가 많습니다. 적용되는 규정을 확인하세요.
  • 비밀번호가 필요하다면 글자, 숫자, 기호를 섞어 주는 비밀번호 생성기를 쓰세요.

다른 방법으로 난수 만들기

Excel과 Google 스프레드시트. =RANDBETWEEN(1,100)은 1부터 100 사이의 정수 하나를 돌려줍니다. 최신 Excel에서는 =RANDARRAY(10,1,1,100,TRUE)로 열 칸을 한 번에 채울 수 있습니다. 시트가 다시 계산될 때마다 값이 바뀌므로 결과를 남기려면 값으로 붙여넣으세요.

Python. 게임이나 시뮬레이션에는 random.randint(1, 100)으로 충분합니다. 보안과 관련된 용도라면 secrets.randbelow(100) + 1을 쓰고, 중복 없이 뽑으려면 random.sample(range(1, 50), 6)을 쓰세요.

JavaScript. Math.random()은 빠르지만 예측 불가능하도록 설계된 함수가 아닙니다. 공정함이 중요하다면 이 페이지처럼 crypto.getRandomValues와 거부 샘플링을 함께 쓰세요.

명령줄. Linux와 macOS에서는 shuf -i 1-100 -n 1로 1부터 100 사이의 숫자 하나를 출력할 수 있습니다.

관련 도구

숫자 목록을 순서대로 정리하려면 숫자 정렬 도구를 쓰세요. 숫자 대신 목록에서 이름이나 항목을 뽑으려면 랜덤 뽑기를, 기간 안에서 무작위 날짜를 뽑으려면 랜덤 날짜 생성기를 사용해 보세요.

랜덤 숫자 생성기 자주 묻는 질문

1부터 100 사이의 숫자를 무작위로 뽑으려면 어떻게 하나요?

최솟값을 1, 최댓값을 100으로 두고 개수를 1로 둔 채 숫자 생성을 누르세요. 1과 100도 나올 수 있고, 그 사이의 모든 숫자가 같은 확률로 뽑힙니다.

중복 없이 숫자를 뽑을 수 있나요?

네. 숫자 생성을 누르기 전에 중복 없이를 켜면 같은 값은 한 번만 나옵니다. 1부터 5 사이에서 6개를 뽑는 것처럼 범위에 있는 숫자보다 많이 요청하면 범위가 너무 작다는 안내가 나옵니다.

이 난수 생성기는 정말 무작위인가요?

브라우저가 보안 작업용으로 제공하는 난수원인 crypto.getRandomValues를 사용하며, 이 값은 운영체제가 시드를 공급합니다. 실제 주사위를 굴리는 것은 아니지만 예측할 수 없고, 많은 사이트가 쓰는 단순한 Math.random 함수보다 훨씬 낫습니다.

소수도 만들 수 있나요?

네. 소수점 자릿수를 1에서 6 사이로 정하세요. 0부터 1까지, 소수점 둘째 자리로 한 번 실행했을 때 0.45, 0.44, 0.63이 나왔습니다.

한 번에 만들 수 있는 숫자 개수에 제한이 있나요?

한 번에 최대 10,000개까지 만들 수 있습니다. 최솟값과 최댓값의 차이는 약 9천조까지 가능하므로 실제로 쓰기에는 충분합니다.