# 乱数ジェネレーター

> 無料の乱数ジェネレーター。任意の範囲で乱数を抽選します。重複の可否、ソートの有無を選べ、暗号論的な乱数を使用します。

最小値と最大値の間の整数をランダムに抽選します。抽選数、重複の可否、結果のソートを制御でき、すべて暗号論的な真の乱数を使います。

*Interactive tool: enter your values at https://toollantern.win/ja/ransuu-generator/ and results update instantly in your browser.*

## このツールでできること

ジェネレーターは、指定した最小値と最大値の間の整数を抽選します。抽選数、重複の可否、結果をソートするか抽選順のままにするかを選べます。1回の抽選で最大1,000個まで生成できます。

## 乱数の仕組み

抽選には**crypto.getRandomValues**（ブラウザの暗号論的乱数ジェネレーター）を使い、精度の低いMath.randomは使いません。乱数ビットを範囲に偏りなく割り当てるため、**棄却サンプリング**を使います。32ビット値を抽選し、一部の数値がわずかに出やすくなる小さな残差領域（剰余バイアス）に入った場合はやり直します。これにより範囲内のすべての数値が完全に等確率になります。

## 計算例

**1〜49の5つの数値**を重複なし・ソートありで抽選すると、たとえば**4, 17, 23, 31, 45**となります。宝くじの抽選と同じ形式で、1,906,884通りの組み合わせはすべて等確率です。

## 重複のあり・なし

重複なしでは、くじ引きのように母集団が減っていく方式で抽選され、各結果は一意になります。重複ありでは各抽選が独立し、サイコロを振り直すようなものです。範囲に収まる数より多くの固有値を求めた場合、個数は範囲のサイズに制限されます。

## 注意点

ランダムであることと、あらゆる用途に公平であることは別です。公営くじやギャンブルには認証済みのシステムをお使いください。ゲーム、抽選会、サンプリング、日常の意思決定には、このジェネレーターの乱数で十分です。

## よくある質問
### 1〜100の乱数を生成するには？

最小値を1、最大値を100、個数を1に設定して「生成」を押してください。ページ読み込み時のデフォルトもこの設定です。

### 数値は本当にランダムですか？

ブラウザの暗号論的乱数ジェネレーターcrypto.getRandomValuesを使い、剰余バイアスを除くため棄却サンプリングも行っています。範囲内の各数値は完全に等確率です。

### 重複を許可するとどうなりますか？

オンにすると各抽選が独立し、重複が出ることがあります（サイコロの振り直しのようなもの）。オフにすると各数値は1回の抽選で最大1回までしか出ません（くじ引きのようなもの）。

### 宝くじの番号を抽選できますか？

はい。範囲を1〜49（またはお使いの宝くじの範囲）に、個数を抽選球数に設定し、重複をオフ、ソートをオンにしてください。すべての組み合わせが等確率です。

### 1,000個の上限があるのはなぜですか？

ページを高速で見やすく保つためです。より大きな標本が必要な場合は複数回に分けて抽選してください。

---
Interactive version: https://toollantern.win/ja/ransuu-generator/
