# 랜덤 숫자 생성기

> 보안 난수 또는 재현 가능한 시드 추첨, 6가지 분포, 가중치, 주사위 표기법, 실시간 통계를 제공하는 무료 난수 생성기. 100% 브라우저에서 작동합니다.

URL: https://acrafto.com/ko/random-number-generator/  
Updated: 2026-08-28

Tools are interactive browser apps; there is no public API, no endpoints to call and no server-side processing. To use a tool, open its HTML page in a browser.

## 난수 생성기는 어떻게 작동하나요?

이 생성기는 **두 가지 무작위성 소스**를 제공하며, 용도에 맞는 것을 선택할 수 있습니다.

\*\*보안 난수(Secure random)\*\*는 Web Crypto API(`crypto.getRandomValues()`)를 통해 운영체제에서 엔트로피를 가져옵니다. 예측할 수 없고 재현할 수 없으므로, 결과를 사전에 아무도 추측해서는 안 되는 실제 추첨에 적합한 선택입니다.

**시드(Seeded)** 모드는 입력한 임의의 텍스트를 결정론적 생성기(xoshiro128\*\*)의 시작 상태로 변환합니다. 같은 시드는 항상 같은 숫자를 만들어내므로, 누구나 여러분의 추첨을 재현해 결과가 맞는지 확인할 수 있습니다.

두 방식 모두 **전적으로 사용자의 브라우저에서** 실행됩니다. 어떤 숫자도 서버로 전송되지 않습니다.

### 모듈로 편향 없음

대부분의 단순한 생성기는 32비트 난수 값을 `value % range`로 원하는 범위에 매핑합니다. 범위가 2³²을 균등하게 나누지 못하면 낮은 숫자가 나머지보다 약간 더 자주 나오게 됩니다. 수천 번 추첨하면 이 차이가 측정 가능해집니다.

이 생성기는 대신 \*\*거부 샘플링(rejection sampling)\*\*을 사용합니다. 불균등한 꼬리 부분에 해당하는 값은 버리고 다시 뽑습니다. 범위 내 모든 숫자는 정확히 동일한 확률을 갖습니다. 내장된 균등성 검정으로 직접 확인할 수 있습니다.

## 생성기 기능

### 범위

- **최소값과 최대값** – 정수 또는 소수 범위, 음수 포함 자유롭게 설정
- **숫자 개수** – 한 번의 추첨으로 1개부터 최대 **1,000,000개**까지
- **중복 없음** – 실제 추첨처럼 각 숫자가 최대 한 번만 나타남
- **정렬** – 추첨 순서, 오름차순, 내림차순 중 선택; 정렬은 무작위성에 영향을 주지 않음
- **간격(Step)** – 결과를 특정 값의 배수로 제한, 예를 들어 0, 5, 10, 15만 나오도록 설정
- **제외 숫자** – 절대 뽑히면 안 되는 값을 목록으로 지정

### 모드

- **무작위성 소스** – 보안(Web Crypto) 또는 시드(재현 가능)
- **시드** – 임의의 텍스트; 같은 시드는 항상 같은 추첨을 재현
- **분포** – 균등, 정규(가우시안), 지수, 푸아송, 삼각, 이항
- **가중치** – 선택한 숫자에 더 높은 확률을 부여, `number:weight` 형식으로 작성
- **주사위 표기법** – `3d6+2`, `d20`, 어드밴티지용 `2d20kh1`, 능력치 굴림용 `4d6dl1`

### 출력

- **구분 기호** – 쉼표, 공백, 세미콜론, 탭, 줄바꿈, 또는 직접 입력한 문자
- **진법** – 10진수, 2진수, 8진수, 16진수, 또는 36진수
- **0으로 채우기** – 7을 007로 만들어 티켓이나 ID 번호에 활용
- **접두사와 접미사** – 모든 숫자를 고정된 텍스트로 감싸기
- **템플릿** – `{n}`은 숫자, `{i}`는 위치를 의미하며, `user{n}`은 `user42`가 됨
- **복사 형식** – 일반 텍스트, CSV, JSON, 또는 마크다운 표

### 통계

모든 추첨은 합계, 평균, 중앙값, 최소값, 최대값, 표준편차와 함께 짝수·홀수·소수의 개수를 실시간으로 요약해 보여줍니다. 히스토그램으로 분포 형태를 확인할 수 있으며, **카이제곱 검정**으로 결과가 실제로 균등 분포와 일치하는지 알 수 있습니다.

### 히스토리

최근 50회의 추첨이 해당 결과를 만든 설정과 함께 브라우저에 저장되며, 클릭 한 번으로 언제든 복원할 수 있습니다. 자주 사용하는 설정은 이름을 붙여 프리셋으로 저장할 수 있고, 전체 목록을 JSON 파일로 내보내 다른 기기에서 불러올 수도 있습니다. 어떤 데이터도 이 브라우저 외에는 저장되지 않습니다.

### 키보드

**스페이스** 또는 **R** 키를 눌러 마우스 없이 다시 추첨할 수 있습니다.

## 빠른 사전 설정

| 사전 설정 | 범위 | 개수 | 용도 |
| --- | --- | --- | --- |
| 🎲 주사위 | 1–6 | 1 | 보드게임, 의사 결정 |
| 🪙 동전 | 0–1 | 1 | 앞면 또는 뒷면 |
| 🎰 로또 | 1–49 | 6 | 중복 없이, 정렬됨, 실제 추첨처럼 |
| 💯 1–100 | 1–100 | 1 | 백분율, A/B 분할 |
| 🔢 PIN | 0–9 | 4 | 4자리 숫자, 중복 허용 |

## 재현 가능한 추첨

시드 모드는 “믿어주세요, 무작위였어요”만으로는 부족한 순간을 위해 존재합니다.

날짜, 해시태그, 공개된 어떤 값의 종가처럼 모두가 사전에 합의할 수 있는 시드를 정하고, 추첨 전에 미리 공지하세요. 그러면 누구나 같은 시드와 같은 설정으로 동일한 결과를 얻을 수 있습니다. 이것이 숫자가 예측 불가능했음을 증명하지는 않지만, 마음에 드는 답이 나올 때까지 다시 굴리지 않았음을 증명합니다.

또한 검증이 필요한 작업에서 무작위성을 재현 가능하게 만드는 방법이기도 합니다. 동료가 다시 실행할 수 있는 표본 추출 계획, 테스트 스위트 전반에서 안정적으로 유지되는 테스트 픽스처, 모든 학생이 동일한 “무작위” 데이터를 받는 수업 실습 등이 그 예입니다.

## 분포 선택하기

**균등(Uniform)** 분포는 범위 내 모든 숫자에 동일한 확률을 부여합니다. 사람들이 보통 무작위라고 할 때 떠올리는 것이며, 기본값입니다.

나머지 분포들은 결과를 특정 값 주변으로 몰아주는데, 이는 현실 세계의 수량이 흔히 보이는 경향입니다.

- **정규(가우시안)** – 신장, 측정 오차, 시험 점수. 평균과 표준편차를 설정
- **지수(Exponential)** – 독립된 사건 사이의 대기 시간
- **푸아송(Poisson)** – 고정된 구간 내 사건 발생 횟수: 시간당 도착 건수, 배치당 불량 개수
- **삼각(Triangular)** – 최소값, 최대값, 가장 가능성 높은 값만 알고 있을 때. 프로젝트 견적에서 흔히 사용
- **이항(Binomial)** – 고정된 확률로 고정된 횟수의 시행에서 성공한 횟수

모든 분포는 설정한 범위로 잘리므로, 긴 가우시안 꼬리도 최소값과 최대값을 벗어날 수 없습니다.

## 난수가 사용되는 곳

### 게임 및 엔터테인먼트

- **보드게임** – 주사위 굴리기, 순서 정하기
- **테이블탑 RPG** – 능력치용 `4d6dl1`, 어드밴티지용 `2d20kh1`
- **경품 추첨** – 참가자가 검증할 수 있도록 시드를 사용해 당첨자 선정
- **퀴즈** – 무작위 문제 순서

### 통계와 과학

- **표본 추출** – 모집단에서 중복 없이 표본 뽑기
- **A/B 테스트** – 참가자를 그룹에 배정
- **몬테카를로 시뮬레이션** – 반복을 통한 확률 추정
- **부트스트래핑** – 불확실성 추정을 위한 재표본 추출

### 개발

- **테스트 데이터** – 페이지 반응성을 유지하며 백그라운드에서 생성하는 수백만 개의 값
- **픽스처** – 시드를 사용해 실패하는 테스트가 매번 같은 방식으로 실패하도록 함
- **랜덤 ID** – 패딩, 접두사, 템플릿 적용
- **부하 테스트** – `user{n}@example.com` 같은 템플릿 식별자

## 진짜 난수 vs. 유사 난수

|  | `Math.random()` | `crypto.getRandomValues()` | 시드(xoshiro128\*\*) |
| --- | --- | --- | --- |
| **유형** | 유사 난수 | 암호학적으로 안전함 | 유사 난수, 결정론적 |
| **엔트로피 소스** | 엔진이 선택한 시드 | 시스템 CSPRNG | 사용자의 시드 텍스트 |
| **예측 가능성?** | 가능성 있음 | 아니오 | 예, 의도된 설계 |
| **재현 가능?** | 아니오 | 아니오 | 항상 |
| **보안에 적합** | 아니오 | 예 | 아니오 |
| **통계에 적합** | 경우에 따라 다름 | 예 | 예 |
| **검증 가능한 추첨에 적합** | 아니오 | 아니오 | 예 |

이 도구에서는 `Math.random()`이 어디에도 사용되지 않습니다.

## 중복 없는 추첨

**중복 없음** 옵션을 켜면 범위 내의 각 숫자가 최대 한 번만 나타납니다. 다음과 같은 경우에 이상적입니다.

- **경품 추첨** – 아무도 두 번 당첨될 수 없음
- **순열** – 항목 집합을 섞기
- **빙고** – 한 번 불린 숫자는 다시 불리지 않음
- **로또** – 1부터 49 사이에서 서로 다른 6개 숫자

이 추첨은 부분 피셔-예이츠(Fisher–Yates) 셔플을 사용하므로, 백만 개 중 6개를 뽑는 것과 49개 중 6개를 뽑는 것의 속도가 동일합니다. 충돌을 피하려고 반복하는 일이 없습니다. 범위가 제공할 수 있는 것보다 더 많은 고유 숫자를 요청하면, 생성기가 멈추는 대신 그 사실을 알려줍니다.

## 결과 내보내기

숫자는 원하는 구분 기호를 사용한 일반 텍스트, 스프레드시트용 **CSV**, 코드용 **JSON**, 문서용 **마크다운 표**로 복사할 수 있습니다. 화면에는 처음 몇천 개만 표시되지만, 매우 큰 추첨도 전체가 메모리에 남아 있고 전체가 그대로 복사됩니다.

## 내 코드에서 난수 생성하기

### JavaScript / TypeScript

```
// 모듈로 편향 없이 [min, max] 범위의 암호학적으로 안전한 정수를 생성.
// 단순한 `value % range`는 range가 2**32를 균등하게 나누지 못할 때
// 작은 숫자를 편향적으로 선호하므로, 불균등한 꼬리 값은 거부한다.
function randomInt(min, max) {
  const range = max - min + 1;
  const limit = Math.floor(0x100000000 / range) * range;
  const arr = new Uint32Array(1);
  let value;
  do {
    crypto.getRandomValues(arr);
    value = arr[0];
  } while (value >= limit);
  return min + (value % range);
}
```

### Python

```
import random
import secrets

# 암호학적으로 안전하며 모듈로 편향 없음
n = secrets.randbelow(max - min + 1) + min

# 재현 가능: 같은 시드는 항상 같은 시퀀스를 생성
rng = random.Random('my-seed')
n = rng.randint(min, max)

# 중복 없이
sample = random.sample(range(min, max + 1), count)
```

### PHP

```
// 암호학적으로 안전함 (PHP 7+), 모듈로 편향 없음
$n = random_int($min, $max);

// 재현 가능
mt_srand(crc32('my-seed'));
$n = mt_rand($min, $max);
```

## 자주 묻는 질문 (FAQ)

### 결과는 정말 무작위인가요?

보안 모드에서는 그렇습니다. 운영체제의 엔트로피 풀로 작동하는 암호학적으로 안전한 생성기인 `crypto.getRandomValues()`에서 나옵니다. 결과는 균등하게 분포되며 예측할 수 없습니다. 시드 모드는 의도적으로 그 반대로, 재현 가능하다는 점이 핵심입니다.

### 한 번에 몇 개의 숫자를 생성할 수 있나요?

최대 1,000,000개까지 가능합니다. 50,000개를 넘는 추첨은 백그라운드 워커에서 계산되어 페이지 반응성이 유지되며, 화면에는 처음 2,000개와 나머지 개수가 표시됩니다. 복사하면 여전히 전체를 얻을 수 있습니다.

### 음수를 생성할 수 있나요?

네. 최소값을 음수로 설정하면 됩니다. 양쪽 끝이 모두 음수인 범위를 포함해 JavaScript 숫자의 전체 범위를 사용할 수 있습니다.

### 정렬은 무작위성에 영향을 주나요?

아니요. 숫자는 먼저 뽑힌 뒤에 정렬됩니다. 정렬은 보이는 순서만 바꿀 뿐입니다.

### 같은 시드를 사용하면 내일도 같은 숫자가 나오나요?

네, 다른 기기나 브라우저에서도 마찬가지입니다. 시드 생성기는 완전히 결정론적이며 시드와 설정 외에는 아무것에도 의존하지 않습니다.

### 균등성 검정은 무엇을 알려주나요?

각 숫자가 실제로 나온 횟수와 이론적으로 나와야 할 횟수를 비교하는 카이제곱 검정을 실행합니다. 통계량이 임계값보다 낮으면 결과가 균등 분포와 일치한다고 볼 수 있습니다. 의미 있는 결과를 얻으려면 비교적 좁은 범위와 충분한 횟수의 추첨(가능한 값당 최소 5회)이 필요합니다.

### 가중치는 어떻게 작동하나요?

`number:weight` 쌍으로 작성합니다. 예를 들어 `1:5, 2:1, 3:1`이라면 1이 2나 3보다 다섯 배 더 뽑히기 쉽습니다. 목록에 없는 숫자는 가중치가 0으로 처리되어 절대 뽑히지 않습니다.

### 어떤 주사위 표기법을 지원하나요?

`3d6`은 6면체 주사위 세 개를 굴립니다. `3d6+2`처럼 보정값을 더할 수 있습니다. `kh`, `kl`, `dh`, `dl`로 주사위를 유지하거나 버릴 수 있어, `2d20kh1`은 두 개의 d20 중 높은 값을 유지(어드밴티지)하고, `4d6dl1`은 네 개의 d6 중 가장 낮은 값을 버립니다.

### 내 히스토리는 어딘가에 저장되나요?

이 브라우저의 로컬 저장소에만 저장됩니다. 서버로 전송되지 않고, 다른 기기와 동기화되지 않으며, 사이트 데이터를 지우면 사라집니다. 보관하거나 옮기고 싶다면 JSON으로 내보내세요.

## Other languages

- Čeština (cs): [Generátor náhodných čísel](https://acrafto.com/cs/generator-nahodnych-cisel/) ([Markdown](https://acrafto.com/cs/generator-nahodnych-cisel/index.md))
- Slovenčina (sk): [Generátor náhodných čísel](https://acrafto.com/sk/generator-nahodnych-cisel/) ([Markdown](https://acrafto.com/sk/generator-nahodnych-cisel/index.md))
- English (en): [Random Number Generator](https://acrafto.com/en/online-random-number-generator/) ([Markdown](https://acrafto.com/en/online-random-number-generator/index.md))
- Deutsch (de): [Zufallszahlen Generator](https://acrafto.com/de/zufallszahlen-generator-online/) ([Markdown](https://acrafto.com/de/zufallszahlen-generator-online/index.md))
- Français (fr): [Générateur de nombres aléatoires](https://acrafto.com/fr/generateur-nombres-aleatoires/) ([Markdown](https://acrafto.com/fr/generateur-nombres-aleatoires/index.md))
- Español (es): [Generador de números aleatorios](https://acrafto.com/es/generador-numeros-aleatorios-online/) ([Markdown](https://acrafto.com/es/generador-numeros-aleatorios-online/index.md))
- Italiano (it): [Generatore di numeri casuali](https://acrafto.com/it/generatore-numeri-casuali/) ([Markdown](https://acrafto.com/it/generatore-numeri-casuali/index.md))
- Português (pt): [Gerador de números aleatórios](https://acrafto.com/pt/gerador-numeros-aleatorios/) ([Markdown](https://acrafto.com/pt/gerador-numeros-aleatorios/index.md))
- Nederlands (nl): [Random getal generator](https://acrafto.com/nl/generator-willekeurige-getallen/) ([Markdown](https://acrafto.com/nl/generator-willekeurige-getallen/index.md))
- Polski (pl): [Generator liczb losowych](https://acrafto.com/pl/generator-liczb-losowych-online/) ([Markdown](https://acrafto.com/pl/generator-liczb-losowych-online/index.md))
- Română (ro): [Generator numere aleatoare](https://acrafto.com/ro/generator-numere-aleatoare-online/) ([Markdown](https://acrafto.com/ro/generator-numere-aleatoare-online/index.md))
- Magyar (hu): [Véletlenszám generátor](https://acrafto.com/hu/veletlen-szam-generator/) ([Markdown](https://acrafto.com/hu/veletlen-szam-generator/index.md))
- Ελληνικά (el): [Γεννήτρια τυχαίων αριθμών](https://acrafto.com/el/generator-tychaion-arithmon-online/) ([Markdown](https://acrafto.com/el/generator-tychaion-arithmon-online/index.md))
- Български (bg): [Генератор на случайни числа](https://acrafto.com/bg/generator-sluchayni-chisla/) ([Markdown](https://acrafto.com/bg/generator-sluchayni-chisla/index.md))
- Hrvatski (hr): [Generator slučajnih brojeva](https://acrafto.com/hr/generator-nasumicnih-brojeva/) ([Markdown](https://acrafto.com/hr/generator-nasumicnih-brojeva/index.md))
- Slovenščina (sl): [Generator naključnih števil](https://acrafto.com/sl/generator-nakljucnih-stevil/) ([Markdown](https://acrafto.com/sl/generator-nakljucnih-stevil/index.md))
- Eesti (et): [Juhuslike arvude generaator](https://acrafto.com/et/juhuslike-arvude-generaator/) ([Markdown](https://acrafto.com/et/juhuslike-arvude-generaator/index.md))
- Latviešu (lv): [Gadījuma skaitļu ģenerators](https://acrafto.com/lv/gadijuma-skaitlu-generators/) ([Markdown](https://acrafto.com/lv/gadijuma-skaitlu-generators/index.md))
- Lietuvių (lt): [Atsitiktinių skaičių generatorius](https://acrafto.com/lt/atsitiktiniu-skaiciu-generatorius/) ([Markdown](https://acrafto.com/lt/atsitiktiniu-skaiciu-generatorius/index.md))
- Svenska (sv): [Slumptalsgenerator](https://acrafto.com/sv/slumptalsgenerator/) ([Markdown](https://acrafto.com/sv/slumptalsgenerator/index.md))
- Dansk (da): [Tilfældighedsgenerator](https://acrafto.com/da/tilfaeldighedsgenerator-online/) ([Markdown](https://acrafto.com/da/tilfaeldighedsgenerator-online/index.md))
- Suomi (fi): [Satunnaislukugeneraattori](https://acrafto.com/fi/satunnaislukugeneraattori/) ([Markdown](https://acrafto.com/fi/satunnaislukugeneraattori/index.md))
- Norsk (no): [Tilfeldig tallgenerator](https://acrafto.com/no/tilfeldig-tallgenerator/) ([Markdown](https://acrafto.com/no/tilfeldig-tallgenerator/index.md))
- Українська (uk): [Генератор випадкових чисел](https://acrafto.com/uk/generator-vypadkovyh-chysel/) ([Markdown](https://acrafto.com/uk/generator-vypadkovyh-chysel/index.md))
- Русский (ru): [Генератор случайных чисел](https://acrafto.com/ru/generator-sluchajnyh-chisel/) ([Markdown](https://acrafto.com/ru/generator-sluchajnyh-chisel/index.md))
- Српски (sr): [Generator nasumičnih brojeva](https://acrafto.com/sr/generator-nasumicnih-brojeva/) ([Markdown](https://acrafto.com/sr/generator-nasumicnih-brojeva/index.md))
- Македонски (mk): [Генератор на случајни броеви](https://acrafto.com/mk/generator-slucajni-broevi/) ([Markdown](https://acrafto.com/mk/generator-slucajni-broevi/index.md))
- Bosanski (bs): [Generator nasumičnih brojeva](https://acrafto.com/bs/generator-nasumicnih-brojeva/) ([Markdown](https://acrafto.com/bs/generator-nasumicnih-brojeva/index.md))
- Shqip (sq): [Gjenerator numrash të rastësishëm](https://acrafto.com/sq/gjenerator-numrash-rastesishem/) ([Markdown](https://acrafto.com/sq/gjenerator-numrash-rastesishem/index.md))
- Türkçe (tr): [Rastgele sayı üretici](https://acrafto.com/tr/rastgele-sayi-uretici/) ([Markdown](https://acrafto.com/tr/rastgele-sayi-uretici/index.md))
- 日本語 (ja): [乱数生成ツール](https://acrafto.com/ja/ransu-generator/) ([Markdown](https://acrafto.com/ja/ransu-generator/index.md))
- العربية (ar): [مولد أرقام عشوائية](https://acrafto.com/ar/random-number-generator/) ([Markdown](https://acrafto.com/ar/random-number-generator/index.md))
- हिन्दी (hi): [रैंडम नंबर जनरेटर](https://acrafto.com/hi/random-number-generator/) ([Markdown](https://acrafto.com/hi/random-number-generator/index.md))
- Bahasa Indonesia (id): [Generator angka acak](https://acrafto.com/id/generator-angka-acak-online/) ([Markdown](https://acrafto.com/id/generator-angka-acak-online/index.md))
- Tiếng Việt (vi): [Tạo số ngẫu nhiên](https://acrafto.com/vi/cong-cu-tao-so-ngau-nhien/) ([Markdown](https://acrafto.com/vi/cong-cu-tao-so-ngau-nhien/index.md))
- ไทย (th): [สุ่มตัวเลข](https://acrafto.com/th/random-number-generator/) ([Markdown](https://acrafto.com/th/random-number-generator/index.md))
- עברית (he): [מחולל מספרים אקראיים](https://acrafto.com/he/random-number-generator/) ([Markdown](https://acrafto.com/he/random-number-generator/index.md))
