tigtools

乱数生成ツール

範囲と必要な数字の個数を指定するか、リストを貼り付けて当選者を選べます。結果はすべて、ブラウザーの暗号学的に安全な乱数生成機能で生成されます。

ブラウザー内で動作 登録不要

モード

0にすると整数になります。

crypto.getRandomValues と棄却サンプリングを使用するため、範囲内のすべての値が同じ確率で生成されます。

使い方

  1. 「数字」「リストから選択」「コイン・サイコロ」から選びます。
  2. 数字の場合は、最小値、最大値、必要な個数、小数点以下の桁数を設定します。抽選のように重複なしで選ぶには、「重複なし」にチェックを入れます。
  3. リストの場合は、1行に1項目ずつ貼り付け、選ぶ個数を指定します。各行が選ばれるのは1回だけです。
  4. 「生成」または「選択」を押して、結果をコピーします。もう一度押すと、新たに抽選できます。

仕組み

数値はMath.randomではなく、ブラウザーに組み込まれた暗号学的に安全な乱数生成機能 crypto.getRandomValues から取得されます。範囲内の一部の値が出やすくならないよう、範囲の数値に変換する際は棄却サンプリングを使用します。ランダムな32ビット値が、範囲の大きさで均等に分割できない上端の端数部分に入った場合、その値は破棄して新しい値を取得します。単純に「乱数 % 範囲」とすると、小さい値がわずかに出やすくなります。

最小値と最大値はどちらも含まれます。小数点以下の桁数を指定すると、その桁数の刻み(小数点以下2桁なら0.01)に範囲が分割され、各刻みが同じ確率で選ばれます。そのため、0から1までを小数点以下2桁で指定すると、101個の値のいずれかが出ます。「重複なし」では、抽選のように同じ数値を再度選ばずに抽出します。範囲内の数より多くの異なる数値は抽出できません。その場合はツールが通知します。

リストから選択する場合は、Fisher–Yatesシャッフルで行を並べ替え、先頭からN個を選びます。各項目が選ばれる確率は同じで、同じ行が2回選ばれることはありません。同じ行が複数ある場合は別々の項目として扱われるため、2回記載された名前には選ばれるチャンスが2回あります。空行と、行の先頭または末尾のスペースは無視されます。

コインは表と裏が同じ確率で出ます。サイコロはそれぞれ1から6までが同じ確率で出ます。結果は保存されないため、私たちを含め、誰も抽選結果を確認したり再現したりできません。

使用例

宝くじ形式の抽選

最小値を1、最大値を49、個数を6に設定し、「重複なし」と「並べ替え」をオンにすると、4、11、23、30、37、45のように異なる6つの数値が得られます。

プレゼント企画の当選者を選ぶ

参加者を1行に1人ずつ入力し、3人を選びます。各参加者が当選できるのは1回のみで、全員の当選確率は同じです。

テスト用のランダムな小数

最小値を0、最大値を1、小数点以下の桁数を3にすると、0.274や0.901など、1,001個の値のいずれかが同じ確率で得られます。

よくある質問

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

数値は、ハードウェアイベントをもとにオペレーティングシステムがシードを生成する、ブラウザーの暗号学的に安全な乱数生成機能から取得されます。抽選やセキュリティ用途に適しています。規制対象の宝くじでは、認定機器を義務付ける規則に従ってください。

最小値と最大値は含まれますか?

はい。1から6までの場合、1、2、3、4、5、6のいずれかが同じ確率で出ます。

「重複なし」にするとエラーになるのはなぜですか?

重複なしでは、範囲内にある数値の数を超えて抽出できません。1から10までの場合、異なる整数は10個だけです。範囲を広げる、小数点以下の桁数を増やす、または重複を許可してください。

後から抽選結果を確認したり、再現したりできますか?

いいえ。結果は保存されず、再入力できる値をもとにシードが生成されることもありません。公開抽選の場合は、画面を録画するか、結果をすぐにコピーしてください。

プライバシー

数字やリストの生成・処理はブラウザー内でのみ行われます。データが送信、保存されたり、分析に使用されたりすることはありません。