【Python】random関数の使い方を徹底解説!乱数を使ったサンプルコードつき!

randomはPythonのモジュールの1つであり、ランダムな数値の生成や配列オブジェクトにランダムな処理を加えるなど、ランダムで実行したい処理に使えるモジュールとなっています。

そのため、randomモジュールを使用することでいろいろな種類の乱数を生成することができます。

今回は下記の内容について解説していきます。
randomとは
randomの基本的な使い方
randomを使った簡単なアプリ

random関数とは

randomとは乱数を生成することができます。
乱数とは、数値がランダムに生成されることを言います。

1から10までの数の中から1つ乱数を生成する場合、何を出すかこちらでは指定できず、1から10までの数のうちどれか1つの整数が生成されます。

どこでrandomが使われているのかというと代表的なものだゲームでサイコロを降る時などです。
1から6の内こちらが数字を指定しても面白くないので、何が出るのか分からないようにするためにrandomで作成されています。

random関数の書き方

andomの構文は下記のようになります。

import randomと書くことで、randomモジュールがインポートされます。
インポートすることでrandomを使用することができます。

randomを使ったサンプルコード

出力結果

0.059324731
0.397606905

numとnum2にはそれぞれランダムな数値が格納されています。
これは、実行するたびに値は変わりますので注意してください。

randomの基本的な使い方

1未満の浮動小数点数の乱数を取得

1未満の少数の乱数を取得するにはrandom.random()関数を使用します。
random.random()関数は「0.0以上1.0未満」の浮動小数点数の乱数を生成することができます。

出力結果

0.427660034
0.447880372

指定した範囲の乱数を取得

指定した範囲の乱数を取得するにはrandom.uniform() 関数を使用します。
random.uniform() 関数は任意の範囲「開始値 <= n <=終了値」または 「終了値 <= n <= 開始値」のランダムな浮動小数点数を生成することができます。

出力結果

9.657262304
-2.748530017

指定した範囲の整数の乱数を取得

指定した範囲の整数の乱数を取得するにはrandom.randint()関数を使用します。
random.randint()関数は「開始値 <= n <= 終了値」のランダムな整数を作成することができます。

出力結果

9
30

リストなどの中身をランダムに取得

リストなどの中身をランダムに取得するにはrandom.choice()関数を使用します。
random.choice()関数はリストなどの値の中のどれか1つの要素をランダムに取得することができます。

出力結果

[12]
[7]
[‘う’]
[‘い’]

リストなどの中身をシャッフルする

リストなどの中身をシャッフルするにはrandom.shuffle()関数を使用します。
random.shuffle()関数とは()中のリストなどの要素をシャッフルすることができます。

出力結果

[3, 14, 13, 6, 9, 7, 10, 11, 4, 8, 15, 5, 2, 1, 12]
[‘え’, ‘お’, ‘い’, ‘う’, ‘あ’]
[9, 11, 12, 8, 5, 13, 1, 14, 2, 7, 15, 3, 6, 4, 10]
[‘お’, ‘い’, ‘あ’, ‘う’, ‘え’]

乱数の初期化を行う

乱数を初期化するには、random.seed()を使います。
引数を省略すると、毎回異なる値が生成されますが、引数を任意の数値に固定すると、毎回同じ値が生成されます。

seed()の引数を無しにすると毎回異なる値が出力されるようになります。

出力結果

17
17
17
17
17
38
36
12
93
73

randomを使った作品

おみくじアプリ

randomを使っておみくじのアプリを作成すると下記のようなコードになります。

出力結果

おみくじの結果は。小吉です。
今日は何かいいことがあるかもしれません。

このように簡単なおみくじのアプリを作成することができます。

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し