Bookmarks    
P値の計算    
比の計算    
行列式    
逆行列    
円の計算    
球の体積    
年齢計算    
日数計算    
曜日計算    
時差計算    
複利計算    
単利計算    
利息計算    
ROIの計算    
IRRの計算    
GDPの計算    
CAGR計算    
BMI計算機    
TDEE計算機    
1RM計算機    
露点温度    
進数変換    
給与換算    
燃費計算    
生コン量    
外壁面積    
   追加
確率・ランダムの計算ツール
2つの独立な事象の確率
2つの独立な事象の確率
2つの事象の確率(逆算)
2つの事象の確率(逆算)
くり返したときの確率
くり返したときの確率
条件付き確率・ベイズの定理
条件付き確率・ベイズの定理
期待値計算機
期待値計算機
二項分布の計算機
二項分布の計算機
順列・組み合わせ
順列・組み合わせ
円順列・じゅず順列
円順列・じゅず順列
重複順列・重複組合せ
重複順列・重複組合せ
乱数ジェネレーター
乱数ジェネレーター
平均・統計の計算ツール
平均計算機
平均計算機
代表値計算機(最頻値ほか)
代表値計算機(最頻値ほか)
標準偏差計算機
標準偏差計算機
四分位数計算機
四分位数計算機
度数分布表 計算機
度数分布表 計算機
相関係数計算機
相関係数計算機
正規分布の確率
正規分布の確率
Zスコアの計算
Zスコアの計算
信頼区間の計算
信頼区間の計算
サンプルサイズの計算
サンプルサイズの計算
標本調査の計算
標本調査の計算
P値の計算
P値の計算
割合・パーセントの計算ツール
割合・パーセントの計算
割合・パーセントの計算
増減率の計算
増減率の計算
パーセント差
パーセント差
誤差率の計算
誤差率の計算
比の計算
比の計算
割引計算機
割引計算機
消費税の計算
消費税の計算
利益率計算機
利益率計算機
速さの計算ツール
速さ計算機
速さ計算機
密度・濃度の計算ツール
密度計算機
密度計算機
モル濃度計算機
モル濃度計算機
分子量・モル質量
分子量・モル質量
物理・電気工学の計算ツール
オームの法則の計算
オームの法則の計算
W・A・V の相互換算
W・A・V の相互換算
抵抗器カラーコードの計算
抵抗器カラーコードの計算
電圧降下の計算
電圧降下の計算
単位の換算の計算ツール
坪・畳・㎡換算
坪・畳・㎡換算
重さの単位換算
重さの単位換算
靴サイズの変換
靴サイズの変換
整数・正負の数の計算ツール
割り算の筆算(商と余り)
割り算の筆算(商と余り)
最小公倍数計算機
最小公倍数計算機
最大公約数
最大公約数
正負の数の計算機
正負の数の計算機
素因数分解
素因数分解
一次不定方程式計算機
一次不定方程式計算機
合同式・余りの計算機
合同式・余りの計算機
約数計算機
約数計算機
ローマ数字変換
ローマ数字変換
分数・小数・端数処理の計算ツール
分数計算機
分数計算機
帯分数計算機
帯分数計算機
約分計算機
約分計算機
分数から小数への変換
分数から小数への変換
小数から分数への変換
小数から分数への変換
四捨五入・切り上げ・切り捨て
四捨五入・切り上げ・切り捨て
方程式・不等式の計算ツール
一次方程式計算機
一次方程式計算機
連立方程式計算機
連立方程式計算機
二次方程式の解の公式
二次方程式の解の公式
絶対値の方程式・不等式
絶対値の方程式・不等式
二次不等式 計算機
二次不等式 計算機
三次方程式計算機
三次方程式計算機
多項式・式の展開の計算ツール
文字式の計算機
文字式の計算機
因数分解計算機
因数分解計算機
式の展開 計算機
式の展開 計算機
多項式の割り算計算機
多項式の割り算計算機
二項定理の計算機
二項定理の計算機
平方根・n乗根の計算ツール
根号の簡約
根号の簡約
分母の有理化
分母の有理化
累乗根の計算
累乗根の計算
指数・対数の計算ツール
べき乗計算機
べき乗計算機
対数計算機
対数計算機
常用対数と桁数
常用対数と桁数
科学的記数法
科学的記数法
科学的記数法の計算
科学的記数法の計算
半減期計算機
半減期計算機
複素数の計算ツール
複素数計算機
複素数計算機
複素数の極形式変換
複素数の極形式変換
ド・モアブルの定理
ド・モアブルの定理
関数・グラフの計算ツール
直線の傾きの計算
直線の傾きの計算
一次関数計算機
一次関数計算機
比例・反比例 計算機
比例・反比例 計算機
二次関数 y=ax² 計算機
二次関数 y=ax² 計算機
2点間の距離の計算
2点間の距離の計算
3D空間の2点間の距離の計算
3D空間の2点間の距離の計算
内分点・外分点の計算
内分点・外分点の計算
点と直線の距離 計算機
点と直線の距離 計算機
緯度経度の距離計算
緯度経度の距離計算
平方完成 計算機
平方完成 計算機
円の方程式 計算機
円の方程式 計算機
二次曲線計算機
二次曲線計算機
極座標と直交座標の変換
極座標と直交座標の変換
微分・積分の計算ツール
極限計算機
極限計算機
導関数計算機
導関数計算機
微分公式の計算機
微分公式の計算機
接線・法線 計算機
接線・法線 計算機
定積分計算機
定積分計算機
不定積分計算機
不定積分計算機
2曲線間の面積
2曲線間の面積
回転体の体積 計算機
回転体の体積 計算機
数列の計算ツール
等差数列の計算
等差数列の計算
等比数列の計算
等比数列の計算
Σ(シグマ)計算機
Σ(シグマ)計算機
フィボナッチ数列の計算
フィボナッチ数列の計算
漸化式計算機
漸化式計算機
ベクトルの計算ツール
ベクトルの計算
ベクトルの計算
外積の計算
外積の計算
行列の計算ツール
行列の計算
行列の計算
行列式
行列式
逆行列
逆行列
平面図形の計算ツール
三角比の計算
三角比の計算
度とラジアンの変換
度とラジアンの変換
三角関数の合成
三角関数の合成
三角形計算機
三角形計算機
三角形の面積計算機
三角形の面積計算機
直角三角形の計算
直角三角形の計算
三平方の定理の計算
三平方の定理の計算
多角形の内角・外角
多角形の内角・外角
相似比・面積比・体積比
相似比・面積比・体積比
平行線と角
平行線と角
長方形の面積
長方形の面積
平行四辺形の面積
平行四辺形の面積
台形の面積
台形の面積
円の計算
円の計算
扇形の面積
扇形の面積
円周角の定理
円周角の定理
楕円の面積
楕円の面積
空間図形の計算ツール
立方体の体積
立方体の体積
立方体の表面積
立方体の表面積
直方体の体積
直方体の体積
直方体の表面積
直方体の表面積
円柱の体積
円柱の体積
円柱の表面積
円柱の表面積
球の体積
球の体積
球の表面積
球の表面積
球欠(球冠)の体積
球欠(球冠)の体積
球冠の表面積
球冠の表面積
楕円体の体積
楕円体の体積
楕円体の表面積
楕円体の表面積
四角錐の体積
四角錐の体積
四角錐の表面積
四角錐の表面積
円錐の体積
円錐の体積
円錐の表面積
円錐の表面積
円錐台の体積
円錐台の体積
円錐台の表面積
円錐台の表面積
パイプ(管)の体積
パイプ(管)の体積
カプセル形の体積
カプセル形の体積
カプセルの表面積
カプセルの表面積
日付・時間の計算ツール
年齢計算
年齢計算
日数計算
日数計算
○日後・○日前の日付
○日後・○日前の日付
○時間後・○時間前の日時
○時間後・○時間前の日時
曜日計算
曜日計算
時間の足し算・引き算
時間の足し算・引き算
時差計算
時差計算
勤務時間計算
勤務時間計算
時間差の計算
時間差の計算
タイムカード計算
タイムカード計算
金融・経済の計算ツール
複利計算
複利計算
単利計算
単利計算
利息計算
利息計算
ファイナンス計算機
ファイナンス計算機
現在価値の計算
現在価値の計算
将来価値の計算
将来価値の計算
ROIの計算
ROIの計算
IRRの計算
IRRの計算
回収期間の計算
回収期間の計算
平均リターンの計算
平均リターンの計算
GDPの計算
GDPの計算
Webマーケ・広告指標の計算ツール
クリック率(CTR)の計算
クリック率(CTR)の計算
コンバージョン率(CVR)の計算
コンバージョン率(CVR)の計算
CPC・CPM・CPA計算機
CPC・CPM・CPA計算機
ROAS(広告費用対効果)の計算
ROAS(広告費用対効果)の計算
損益分岐CPA・許容CPA計算機
損益分岐CPA・許容CPA計算機
顧客生涯価値(LTV)の計算
顧客生涯価値(LTV)の計算
顧客獲得コスト(CAC)とLTV/CAC比
顧客獲得コスト(CAC)とLTV/CAC比
チャーン率(解約率)と平均継続期間
チャーン率(解約率)と平均継続期間
A/Bテストの有意差判定
A/Bテストの有意差判定
A/Bテストの必要サンプル数
A/Bテストの必要サンプル数
検索順位別CTRからの想定流入数
検索順位別CTRからの想定流入数
損益分岐点計算機
損益分岐点計算機
値入率・掛率換算
値入率・掛率換算
CAGR計算
CAGR計算
健康・フィットネスの計算ツール
BMI計算機
BMI計算機
睡眠サイクル計算
睡眠サイクル計算
カロリー計算機
カロリー計算機
基礎代謝量計算機
基礎代謝量計算機
TDEE計算機
TDEE計算機
理想体重計算機
理想体重計算機
体脂肪率計算機
体脂肪率計算機
除脂肪体重計算機
除脂肪体重計算機
消費カロリー計算機
消費カロリー計算機
たんぱく質摂取量計算機
たんぱく質摂取量計算機
PFCバランス計算機
PFCバランス計算機
炭水化物摂取量計算機
炭水化物摂取量計算機
脂質摂取量計算機
脂質摂取量計算機
子供の身長予測
子供の身長予測
スポーツの計算ツール
ゴルフハンディキャップ
ゴルフハンディキャップ
ペース計算機
ペース計算機
1RM計算機
1RM計算機
目標心拍数計算機
目標心拍数計算機
気象の計算ツール
ヒートインデックス
ヒートインデックス
ウインドチル
ウインドチル
露点温度
露点温度
コンピュータの計算ツール
進数変換
進数変換
IPサブネット計算機
IPサブネット計算機
帯域幅・ダウンロード時間の計算機
帯域幅・ダウンロード時間の計算機
家計・光熱費の計算ツール
電気代計算
電気代計算
kWh→電気代・逆算
kWh→電気代・逆算
年間消費電力量→電気代
年間消費電力量→電気代
エアコン畳数・能力
エアコン畳数・能力
エアコンの電気代計算
エアコンの電気代計算
暖房の電気代比較
暖房の電気代比較
ガスと電気の光熱費比較
ガスと電気の光熱費比較
LED交換の節約額
LED交換の節約額
給与換算
給与換算
家計収支の計算
家計収支の計算
自動車の計算ツール
ガソリン代計算
ガソリン代計算
EV充電コスト
EV充電コスト
EVとガソリン車の燃料費比較
EVとガソリン車の燃料費比較
燃費計算
燃費計算
タイヤサイズ計算
タイヤサイズ計算
太陽光発電・蓄電池の計算ツール
太陽光発電の発電量
太陽光発電の発電量
太陽光パネルの枚数と面積
太陽光パネルの枚数と面積
太陽光発電の回収年数
太陽光発電の回収年数
蓄電池の必要容量と持ち時間
蓄電池の必要容量と持ち時間
住まい・DIYの計算ツール
タイル枚数
タイル枚数
階段の寸法
階段の寸法
生コン量
生コン量
壁・天井・床の面積
壁・天井・床の面積
壁紙の必要量
壁紙の必要量
塗料の必要量
塗料の必要量
フローリング枚数
フローリング枚数
外壁面積
外壁面積
砂利の必要量
砂利の必要量
モルタルの配合
モルタルの配合
勾配の計算
勾配の計算
木材の取り数
木材の取り数
建ぺい率・容積率
建ぺい率・容積率
クッションフロア必要量
クッションフロア必要量
畳の枚数と広さ
畳の枚数と広さ
断熱材の必要量
断熱材の必要量
カーテンのサイズ
カーテンのサイズ
テレビのサイズと視聴距離
テレビのサイズと視聴距離
土・培養土の必要量
土・培養土の必要量
芝生の必要枚数
芝生の必要枚数
ブロック塀の個数
ブロック塀の個数
レンガの必要枚数
レンガの必要枚数
ウッドデッキの材料
ウッドデッキの材料
スロープの必要長さ
スロープの必要長さ
ネジの下穴径と長さ
ネジの下穴径と長さ
容積と必要換気量
容積と必要換気量
塗料の希釈計算
塗料の希釈計算
巾木・廻り縁の長さ
巾木・廻り縁の長さ
ブラインドの採寸
ブラインドの採寸
額縁の取り付け高さと配置
額縁の取り付け高さと配置
排水勾配と高低差
排水勾配と高低差
ビス・釘の必要本数
ビス・釘の必要本数
木材の材積(m³・才)
木材の材積(m³・才)
フェンスの本数
フェンスの本数
木材の収縮量(含水率変化)
木材の収縮量(含水率変化)
接着剤・コーキングの必要量
接着剤・コーキングの必要量
部屋の熱損失の目安
部屋の熱損失の目安
家具の搬入可否
家具の搬入可否
引越しのダンボール枚数
引越しのダンボール枚数
収納・棚の容量
収納・棚の容量
板取り計算
板取り計算
棚板のたわみと耐荷重
棚板のたわみと耐荷重

乱数ジェネレーター(乱数生成器)

下限と上限を入力して「計算する」を押すと、その範囲の乱数を生成します。個数・小数点以下の桁数・重複のあり/なしも指定できます(下限と上限以外は空欄でもOK。空欄なら「整数を1個・重複あり」です)。

個数は1〜999の整数、小数点以下の桁数は0〜50の整数で入力してください。同じ入力でも、押すたびに違う乱数が出ます。
計算結果
左の入力欄に範囲を入れて「計算する」を押すと、ここに生成された乱数が表示されます。

このページでできること

  • 下限と上限を入れるだけで、その範囲の乱数(ランダムに選ばれた数)がその場で作れます
  • 整数だけでなく小数の乱数も作れます。小数点以下の桁数は0〜50桁で指定できます
  • 一度に最大999個まで生成でき、重複の「あり・なし」も選べます。2個以上作ると、生成した順番に加えて昇順・降順に並べ替えた結果も同時に表示します
  • 1〜6のような小さな範囲から、20桁を超える巨大な整数まで対応しています
  • 乱数のしくみのやさしい解説・Excel/Googleスプレッドシート/Python用のコピペ数式・計算ドリル(演習問題)もこのページにまとまっています
このページの乱数は、コンピュータが計算式で作る「疑似乱数」です(生成には暗号分野でも使われる品質の方式を採用しています)。抽選・ゲーム・シミュレーションなどの用途には十分ランダムですが、暗号鍵やパスワードそのものを作る用途には、通信を介さない専用のツールを使ってください。

この計算は何の役に立つ?

公平な抽選・くじ引き・席替え(当番決め)

応募者や生徒に番号を振って乱数で選べば、誰の意図も入らない公平な選び方になります。全員が同じ確率で選ばれること(一様分布)が、数学的に保証された「くじ引き」です。
宝くじのロト6が「1〜43から6個・重複なし」という形なのもまさにこの形式で、選び方は約610万通り(6,096,454通り)あります。

世論調査・統計調査の無作為抽出

「日本人全員に聞かずに、なぜ数千人の調査で世論がわかるのか」——その土台が、対象者を乱数で選ぶ無作為抽出です。作為的に選ぶと結果が偏るため、乱数選びが調査の信頼性を支えます。
報道機関の世論調査で使われるRDD方式は、電話番号そのものを乱数で作って掛ける方法で、電話帳に載っていない人にも等しく当たるように工夫されています。

シミュレーション(モンテカルロ法)——金融・気象・科学

複雑すぎて式では解けない問題でも、乱数で何万回も試行して結果を集計すれば、答えに近い値が得られます。これをモンテカルロ法といい、金融機関のリスク計算、気象のアンサンブル予報(条件を少しずつ変えた予測計算を何通りも行う天気予報の手法)、物理や医療の研究まで幅広く使われています。
「乱数の平均は期待値に近づく」という、このページで学ぶ性質がその理論的な土台です。

ゲームの偶然性(サイコロ・カードのシャッフル・ガチャ)

デジタルゲームの中の偶然——サイコロの出目、カードのシャッフル、ガチャの抽選、マップの自動生成——は、すべて疑似乱数で作られています。
「シードが同じなら同じ列が再現される」という疑似乱数の性質は、リプレイ機能や「同じシード値のマップを友達と共有して遊ぶ」といった仕組みに、むしろ積極的に活用されています。

暗号・セキュリティを支える乱数(と、疑似乱数の限界)

ネット通販の暗号通信も、ワンタイムパスワードも、「攻撃者に予測できない数」=乱数がなければ成り立ちません。
ここでは予測されうる普通の疑似乱数は使えないため、暗号論的に強化された生成器や、熱雑音などの物理現象から作るハードウェア乱数が使われます。「乱数の品質」が世の中の安全を左右する、一番シビアな応用例です。

式

整数の乱数が各値になる確率(離散一様分布)
数学表記 (一般的な数式)
\(P(X=k)\) \(=\) \(1\) \(\div\) \((b-a+1)\)
日本語表記 (記号を日本語に置き換えた式)
③ ある整数 \(k\) が出る確率 \(P(X=k)\) \(=\) ① 全体の確率 \(1\) \(\div\) ② 整数の候補の個数 \((b-a+1)\)
式を日本語で読むと
① 全体の確率 \(1\) を
② 整数の候補の個数 \((b-a+1)\) で等分すると
③ ある整数 \(k\) が出る確率 \(P(X=k)\) になる(どの整数も同じ確率で出る)
簡単な例
サイコロは「1〜6の整数の乱数」と考えられます。3が出る確率は
3が出る確率 \(P\) \(=\) 全体の確率 \(1\) \(\div\) 候補の個数(6個)
\(1 \div (6 - 1 + 1) = \frac{1}{6} \fallingdotseq 0.167\ \ (16.7\%)\)
考え方のポイント
乱数ジェネレーターは「範囲内のどの数も同じ確率で出る」ように作られています。このような出方を一様分布といいます。下限 \(a\)・上限 \(b\) の整数の候補は \(b - a + 1\) 個あるので(例:1〜6なら \(6 - 1 + 1 = 6\) 個)、どの整数が出る確率もその個数分の1です。「さっき3が出たから次は3が出にくい」ということはなく、毎回リセットされて同じ確率です。
小数の乱数の出やすさ(連続一様分布の確率密度)
数学表記 (一般的な数式)
\(f(x)\) \(=\) \(1\) \(\div\) \((b-a)\)
日本語表記 (記号を日本語に置き換えた式)
③ 確率密度(グラフの高さ)\(f(x)\) \(=\) ① 全体の確率 \(1\) \(\div\) ② 範囲の幅 \((b-a)\)
式を日本語で読むと
① 全体の確率 \(1\) を
② 範囲の幅 \((b-a)\) の上に均等にならすと
③ 確率密度(グラフの高さ)\(f(x)\) になる(グラフは平らな長方形になる)
簡単な例
0〜10の小数の乱数では、グラフの高さは 1 ÷ 10 = 0.1 です。「2以上5以下に入る確率」は 高さ × 幅 で求められます
グラフの高さ \(f(x)\) \(=\) 全体の確率 \(1\) \(\div\) 範囲の幅(10)
\(1 \div (10 - 0) = 0.1\)
\(0.1 \times (5 - 2) = 0.3\ \ (30\%)\)
考え方のポイント
小数の乱数は候補が無限にあるので、「ちょうど3.000…になる確率」はどの1点でも0です。そこで小数の乱数では「この範囲に入る確率」で考えます。確率はグラフの面積(高さ × 幅)で、範囲全体では \(0.1 \times 10 = 1\)(100%)になります。高さ \(f(x)\) が範囲内のどこでも同じ=どこも同じくらい出やすい、というのが一様分布です。
乱数の平均(一様分布の期待値)
数学表記 (一般的な数式)
\(E[X]\) \(=\) \((a+b)\) \(\div\) \(2\)
日本語表記 (記号を日本語に置き換えた式)
③ 乱数の平均(期待値)\(E[X]\) \(=\) ① 下限 \(a\) と上限 \(b\) の合計 \((a+b)\) \(\div\) ② 割る数 \(2\)(真ん中を取る)
式を日本語で読むと
① 下限 \(a\) と上限 \(b\) の合計 \((a+b)\) を
② 割る数 \(2\) で割って範囲のちょうど真ん中を取ると
③ 乱数の平均(期待値)\(E[X]\) になる
簡単な例
1〜100の整数の乱数をたくさん作ったとき、その平均が近づいていく値は
乱数の平均(期待値)\(E[X]\) \(=\) 下限と上限の合計(1 + 100) \(\div\) 割る数(2)
\((1 + 100) \div 2 = 50.5\)
考え方のポイント
一様分布は範囲の中で左右対称なので、平均(期待値)はちょうど真ん中です。サイコロ(1〜6)なら \((1+6) \div 2 = 3.5\)——1回1回は整数しか出ませんが、たくさん振った平均は3.5に近づいていきます。ばらつきの目安(分散)は、小数の一様乱数では \(V[X] = \frac{(b-a)^2}{12}\) で求められます。
0〜1の乱数から範囲内の整数の乱数を作る変換
数学表記 (一般的な数式)
\(n\) \(=\) \(a\) \(+\) \(\lfloor\) \(u\) \(\times\) \((b-a+1)\) \(\rfloor\)
日本語表記 (記号を日本語に置き換えた式)
⑤ 範囲内の整数の乱数 \(n\) \(=\) ④ 下限 \(a\) \(+\) \(\lfloor\) ① 0以上1未満の乱数 \(u\) \(\times\) ② 整数の候補の個数 \((b-a+1)\) ③ \(\rfloor\)
式を日本語で読むと
① 0以上1未満の乱数 \(u\) に
② 整数の候補の個数 \((b-a+1)\) をかけて引き伸ばし
③ 記号 \(\lfloor\ \rfloor\)(床関数)で小数点以下を切り捨てて整数にし
④ 下限 \(a\) を足すと
⑤ 範囲内の整数の乱数 \(n\) になる
簡単な例
0以上1未満の乱数が0.32だったとき、1〜10の整数の乱数に変換すると
整数の乱数 \(n\) \(=\) 下限(1) \(+\) \(\lfloor\) 0〜1の乱数(0.32) \(\times\) 候補の個数(10個) \(\rfloor\)
\(1 + \lfloor 0.32 \times 10 \rfloor = 1 + \lfloor 3.2 \rfloor = 1 + 3 = 4\)
考え方のポイント
コンピュータの乱数は、まず「0以上1未満の小数」として作られることが多く、この式で欲しい範囲に変換します。\(u\) が0から1まで均等に出るなら、変換後の \(n\) も \(a\) から \(b\) までのどの整数も同じ確率で出ます。ExcelのRAND関数から整数の乱数を作るときも、まさにこの式を使います(Excelの章を参照)。
疑似乱数の作られ方の代表例(線形合同法)
数学表記 (一般的な数式)
\(X_{n+1}\) \(=\) \((aX_n + c)\) \(\bmod\) \(m\)
日本語表記 (記号を日本語に置き換えた式)
③ 次の乱数 \(X_{n+1}\) \(=\) ① 今の乱数 \(X_n\) を \(a\) 倍して \(c\) を足した数 \(\bmod\) ② 割る数 \(m\)
式を日本語で読むと
① 今の乱数 \(X_n\) を \(a\) 倍して \(c\) を足した数 を
② 割る数 \(m\) で割った余りを取ると
③ 次の乱数 \(X_{n+1}\) になる(これをくり返して乱数の列を作る)
簡単な例
掛ける数5・足す数3・割る数16で、最初の値(シード)を7にすると、乱数の列は次のように決まっていきます
次の乱数 \(X_1\) \(=\) 7を5倍して3を足した数(38) \(\bmod\) 割る数(16)
\((5 \times 7 + 3) \bmod 16 = 38 \bmod 16 = 6\)
\((5 \times 6 + 3) \bmod 16 = 33 \bmod 16 = 1\)
考え方のポイント
「掛けて、足して、余りを取る」だけの単純な計算のくり返しで、でたらめに見える数の列が作れます——これが疑似乱数の基本アイデアです(ここでの \(a, c, m\) はあらかじめ決めておく定数で、上の式までの下限・上限とは別物です)。 大事な性質は、最初の値(シード)が同じなら、まったく同じ列が再現されることです。つまり計算式で作った乱数は本当の偶然ではありません。実際のコンピュータでは、線形合同法をさらに改良した方式(メルセンヌ・ツイスタなど)が使われますが、「シードで決まる計算の列」という本質は同じです。
乱数ジェネレーターの乱数は「範囲内のどの数も同じ確率で出る」一様分布に従います。コンピュータの乱数は計算式で作られる疑似乱数で、シード(最初の値)が同じなら同じ列が再現される——本当の偶然ではない、というのが一番のポイントです。

用語・記号の解説

記号

\(a\) エー 乱数の範囲の下限(この数以上)。(例:1〜100の乱数なら \(a = 1\))
\(b\) ビー 乱数の範囲の上限(この数以下)。(例:1〜100の乱数なら \(b = 100\))
\(P(X=k)\) ピー・エックスイコールケー 乱数 \(X\) がちょうど整数 \(k\) になる確率。整数の一様乱数ではどの \(k\) でも同じ値になります。
\(f(x)\) エフエックス(確率密度) 小数の乱数の「出やすさ」を表すグラフの高さ(確率密度関数)。一様分布では範囲内のどこでも同じ高さです。
\(E[X]\) イーエックス(期待値) 乱数 \(X\) をたくさん生成したときに平均が近づいていく値。Eは期待値を意味する英語 Expectation の頭文字です。
\(u\) ユー 0以上1未満の一様な乱数。コンピュータの乱数の多くは、まずこの形で作られてから欲しい範囲に変換されます。
\(\lfloor\ \rfloor\) ゆか(床関数) 中の数の小数点以下を切り捨てて整数にする記号。(例:\(\lfloor 3.2 \rfloor = 3\))
\(X_n\) エックス・エヌ 疑似乱数の列の \(n\) 番目の値。最初の値 \(X_0\) がシード(種)です。
\(\bmod\) モッド 割った余りを取る計算。(例:\(38 \bmod 16 = 6\) となります。38を16で割ると2余り6)

用語

乱数 らんすう サイコロの出目のように、次に何が出るか予測できるパターンのない数のこと。このページの生成器は、指定した範囲からでたらめに選ばれた数を作ります。
一様分布 いちようぶんぷ 範囲内のどの値も同じ程度に出やすい分布。整数の乱数なら「どの整数も同じ確率」、小数の乱数なら「グラフの高さがどこでも同じ」になります。
疑似乱数 ぎじらんすう 計算式で作られる「乱数のように見える」数の列。英語では PRNG(Pseudo Random Number Generator=疑似乱数生成器)と呼びます。コンピュータの乱数は、ほぼすべてこの疑似乱数です。
シード しーど(種) 疑似乱数の計算を始めるときの最初の値。同じシードから始めると、まったく同じ乱数の列が再現されます。普段は時刻などから自動で決められるので、毎回違う列に見えます。
線形合同法 せんけいごうどうほう 「掛けて、足して、余りを取る」をくり返す、疑似乱数の一番古典的な作り方。しくみの学習には最適ですが、現在の実用ではより高品質な方式(メルセンヌ・ツイスタなど)が主流です。
ハードウェア乱数 はーどうぇあらんすう サイコロやコイン、大気の電気的ノイズ、電子回路の熱雑音のような物理現象から作る乱数。計算式によらないため再現できず、「真の乱数」に近いものが得られます。
期待値 きたいち 確率的に出る値を「たくさんくり返したときの平均」。一様乱数の期待値は範囲のちょうど真ん中です。
無作為抽出 むさくいちゅうしゅつ 調査の対象を、人の意図を入れず乱数などでランダムに選ぶこと。統計調査で偏りを避けるための基本の方法で、ランダムサンプリングとも呼ばれます。

前提として理解しておくといいこと

このページの計算を「意味がわかって」使えるようになるために、前提として理解しておくといいことをまとめました。

余りのある割り算(小学3〜4年)
  • 38 ÷ 16 = 2 余り 6 のように、割り算の余りが求められること(線形合同法で使います)
小数と切り捨て(小学4〜5年)
  • 3.2 の小数点以下を切り捨てて 3 にできること
  • 小数点以下の「桁数」が、0.1の位・0.01の位…という位取りのことだとわかること
割合・百分率(小学5年)
  • 確率0.1と10%のように、小数と百分率を行き来できること
確率の基礎(中学2年)
  • どの場合も同じ程度に起こりやすいとき、確率を(当てはまる場合の数)÷(すべての場合の数)で求められること
  • 「さっき出た目」が「次に出る目」の確率に影響しないこと(独立)
期待値(高校 数学A)
  • 期待値が「たくさんくり返したときの平均」を表す値だとわかること

Excelで計算する方法

Excelファイルをダウンロード
式ごとにシートが分かれたExcelファイルです。貼り付け場所を気にせず、開いてすぐ使えます。
下の表を丸ごとコピーして、ExcelのA1セルに貼り付けるとそのまま使えます。
「各整数が出る確率」を求める表
下限 a 1
上限 b 6
各整数が出る確率 =1/(B2-B1+1)
「小数の乱数のグラフの高さ(確率密度)」を求める表
下限 a 0
上限 b 10
確率密度(グラフの高さ) =1/(B2-B1)
「乱数の平均(期待値)」を求める表
下限 a 1
上限 b 100
乱数の平均(期待値) =(B1+B2)/2
「整数の乱数」を作る表
下限 a 1
上限 b 100
整数の乱数(再計算のたびに変わる) =B1+INT(RAND()*(B2-B1+1))
「線形合同法で次の乱数」を求める表
今の乱数 Xn 7
掛ける数 a 5
足す数 c 3
割る数 m 16
次の乱数 =MOD(B2*B1+B3,B4)
貼り付けると、上の行が入力欄になり、最後の行の数式が自動計算の結果になります。
1つ目の表なら約0.1667(=1/6)、3つ目の表なら50.5、5つ目の表なら6と表示されます。
4つ目の表のRAND()は「0以上1未満の乱数」を作る関数で、「式」の章の変換式そのままの形です。F9キーを押すたびに新しい乱数が出ます。
なお、整数の乱数にはExcel専用の関数 =RANDBETWEEN(B1,B2) もあり、同じ結果が1つの関数で得られます。

Googleスプレッドシートで計算する方法

Excelファイルをダウンロード
上のExcelファイルをダウンロードし、Googleドライブにアップロードして開くと、そのままスプレッドシートとして使えます。
下の表を丸ごとコピーして、GoogleスプレッドシートのA1セルに貼り付けるとそのまま使えます。
「各整数が出る確率」を求める表
下限 a 1
上限 b 6
各整数が出る確率 =1/(B2-B1+1)
「小数の乱数のグラフの高さ(確率密度)」を求める表
下限 a 0
上限 b 10
確率密度(グラフの高さ) =1/(B2-B1)
「乱数の平均(期待値)」を求める表
下限 a 1
上限 b 100
乱数の平均(期待値) =(B1+B2)/2
「整数の乱数」を作る表
下限 a 1
上限 b 100
整数の乱数(再計算のたびに変わる) =B1+INT(RAND()*(B2-B1+1))
「線形合同法で次の乱数」を求める表
今の乱数 Xn 7
掛ける数 a 5
足す数 c 3
割る数 m 16
次の乱数 =MOD(B2*B1+B3,B4)
Excelと同じ式がそのまま使えます(RAND・RANDBETWEEN・INT・MODはGoogleスプレッドシートでも同じ名前です)。
表を丸ごとコピーしてA1セルに貼り付け、入力欄の数値を自分の値に書き換えてください。

Pythonで計算する方法

import random

lower = 1     # 下限
upper = 100   # 上限
count = 5     # 生成する個数

# 整数の乱数(重複あり)
integers = [random.randint(lower, upper) for _ in range(count)]
# 整数の乱数(重複なし)
unique_integers = random.sample(range(lower, upper + 1), count)
# 小数の乱数
decimals = [random.uniform(lower, upper) for _ in range(count)]

print(f"整数の乱数(重複あり): {integers}")
print(f"整数の乱数(重複なし): {unique_integers}")
print(f"小数の乱数: {decimals}")

# シードを決めると、何度実行しても同じ列が再現される(疑似乱数の性質)
random.seed(42)
print(f"シード42の乱数: {[random.randint(1, 100) for _ in range(3)]}")
標準ライブラリのrandomモジュールだけで動きます(メルセンヌ・ツイスタという疑似乱数生成器です)。最後の2行を実行すると、シードが同じなら結果が毎回同じになることを確かめられます。なお、パスワードや暗号鍵の生成にはrandomではなく、専用のsecretsモジュールを使ってください。

数式記述言語(LaTeX等)での書き方(コピペ可)

整数の乱数が各値になる確率(離散一様分布)
P(X = k) = 1 / (b − a + 1)
P(X = k) = \frac{1}{b - a + 1}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>P</mi><mo>(</mo><mi>X</mi><mo>=</mo><mi>k</mi><mo>)</mo>
    <mo>=</mo>
    <mfrac>
      <mn>1</mn>
      <mrow><mi>b</mi><mo>&#x2212;</mo><mi>a</mi><mo>+</mo><mn>1</mn></mrow>
    </mfrac>
  </mrow>
</math>
P(X = k) = 1/(b - a + 1)
1/(b - a + 1)
p := 1/(b - a + 1);
p = 1/(b - a + 1);
P(X = k) = 1/(b - a + 1)
小数の乱数の出やすさ(連続一様分布の確率密度)
f(x) = 1 / (b − a)
f(x) = \frac{1}{b - a}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>f</mi><mo>(</mo><mi>x</mi><mo>)</mo>
    <mo>=</mo>
    <mfrac>
      <mn>1</mn>
      <mrow><mi>b</mi><mo>&#x2212;</mo><mi>a</mi></mrow>
    </mfrac>
  </mrow>
</math>
f(x) = 1/(b - a)
1/(b - a)
f := 1/(b - a);
f = 1/(b - a);
f(x) = 1/(b - a)
乱数の平均(一様分布の期待値)
E[X] = (a + b) / 2
E[X] = \frac{a + b}{2}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>E</mi><mo>[</mo><mi>X</mi><mo>]</mo>
    <mo>=</mo>
    <mfrac>
      <mrow><mi>a</mi><mo>+</mo><mi>b</mi></mrow>
      <mn>2</mn>
    </mfrac>
  </mrow>
</math>
E[X] = (a + b)/2
(a + b)/2
mean := (a + b)/2;
mean_x = (a + b)/2;
E[X] = (a + b)/2
0〜1の乱数から範囲内の整数の乱数を作る変換
n = a + ⌊u × (b − a + 1)⌋
n = a + \lfloor u \times (b - a + 1) \rfloor
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>n</mi>
    <mo>=</mo>
    <mi>a</mi>
    <mo>+</mo>
    <mo>&#x230A;</mo>
    <mi>u</mi>
    <mo>&#xD7;</mo>
    <mo>(</mo><mi>b</mi><mo>&#x2212;</mo><mi>a</mi><mo>+</mo><mn>1</mn><mo>)</mo>
    <mo>&#x230B;</mo>
  </mrow>
</math>
n = a + |__ u xx (b - a + 1) __|
a + Floor[u*(b - a + 1)]
n := a + floor(u*(b - a + 1));
n = a + floor(u*(b - a + 1));
n = a + ⌊u × (b - a + 1)⌋
疑似乱数の作られ方の代表例(線形合同法)
Xₙ₊₁ = (a·Xₙ + c) mod m
X_{n+1} = (a X_n + c) \bmod m
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <msub><mi>X</mi><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msub>
    <mo>=</mo>
    <mo>(</mo>
    <mi>a</mi><msub><mi>X</mi><mi>n</mi></msub>
    <mo>+</mo><mi>c</mi>
    <mo>)</mo>
    <mo>mod</mo>
    <mi>m</mi>
  </mrow>
</math>
X_(n+1) = (a X_n + c) mod m
Mod[a*x + c, m]
X[n + 1] := (a*X[n] + c) mod m;
x_next = mod(a*x + c, m);
X_(n+1) = (a X_n + c) mod m

ChatGPT に聞いて計算してもらう方法

あなたは乱数生成のアシスタントです。次の作業を、必ずPythonコードを実際に実行して行い、実行結果の数値だけを根拠に回答してください(乱数はコードを実行しないと作れません。推測や創作で数字を書かないでください)。

1. 1〜100の整数の乱数を5個、重複なしで生成してください。
2. その5個を昇順に並べ替えてください。
3. 0.2〜112.5の範囲の小数の乱数を1個、小数点以下3桁で生成してください。

使ったコードと、実行結果の数値を示してください。

計算ドリル(演習問題)

このページの式を、自分の手で計算できるようになるための演習問題です。
答えと解説は解答ページにあります。


使い方
  1. 1
    数値を入力
    計算したい数値を入力欄に入力します
  2. 2
    計算
    「計算する」ボタンを押します
  3. 3
    結果を確認
    計算結果がその場に表示されます。計算の考え方や式の解説も同じページで確認できます
  DataChefの特徴
簡単・無料
無料で回数無制限の変換
専門知識不要、直感的で簡単な操作
会員登録不要
アクセス直後に利用可能
個人情報を登録することなく使用できます
安全・安心
通信を高度に暗号化
「ダウンロード」押下でファイルを自動削除
高速
ストレスのない快適な表示速度・変換速度
透かしなし
ウォーターマークなし
クレジット表記不要
商用利用可能
無料で商用利用可能
商用利用許諾の連絡も不要です