Pythonでランダムな数値を作りたいとき、random
モジュールを使うのが基本です。
この記事では、基本的な乱数生成から、サイコロ・くじ引き・パスワード生成まで、初心者でもすぐ使えるサンプルコード付きで解説します。
プログラミング学習を進めていくと、乱数生成やランダムな選択をしたい場合が出てくると思います。
この記事の対象
乱数とは?
乱数(らんすう)とは、一定の規則性がない数字のことです。Pythonではゲームの挙動やデータ抽出など、さまざまな場面で使われます。
randomモジュールの基本
「random」関数は、乱数を生成するための関数です。このモジュールを使うことで、ランダムな数値を生成したり、ランダムな要素を選択したりできます。
まずはモジュールをインポートします。
import random
主な関数と使い分け
関数 | 使い方 | 例 |
---|---|---|
random() | 0以上1未満の小数を返す | random.random() |
randint(a, b) | a以上b以下の整数を返す | random.randint(1, 6) |
randrange(start, stop, step) | 範囲内の整数を返す(step指定可) | random.randrange(0, 10, 2) |
uniform(a, b) | a以上b以下の小数を返す | random.uniform(1.0, 5.0) |
0~1の浮動小数点数の生成(random.random())
import random
rand_num = random.random()
print(rand_num)
上記は、「random.random」関数を用いて0から1の範囲のランダムな浮動小数点数を生成するプログラムになります。
任意の範囲で整数を生成random.randint(a,b)
import random
rand_int = random.randint(1, 10)
print(rand_int)
上記は、「random.randint(a,b)」関数を用いて1~10の間で整数を生成するプログラムになります。
リストから要素を選択(random.choice())
import random
rand_list = [1, 2, 3, 4, 5]
rand_out = random.choice(rand_list)
print(rand_out)
上記は、「random.choice()」関数を用いてリストから要素を選択するプログラムになります。
リストの要素をシャッフル(random.shuffle())
import random
rand_list = [1, 2, 3, 4, 5]
random.shuffle(rand_list)
print(rand_list)
上記は、「random.shuffle」関数を用いてリストの要素をシャッフルするプログラムになります。
初期値の設定(random.seed())
import random
#初期値
random.seed(5)
# 同じシード値を使用してランダムな数値を生成
rand_num_1 = random.random()
rand_num_2 = random.random()
print(rand_num_1, rand_num_2)
上記は「random.seed」を用いて乱数生成の初期値を設定して乱数生成するプログラムになります。
Debugや再現性が必要なときに使用する場合が多いです。
応用例
サイコロ
import random
print("サイコロの目:", random.randint(1, 6))
くじ引き
import random
prizes = ["当たり", "ハズレ", "もう一回"]
print("結果:", random.choice(prizes))
ランダムパスワード生成
import random
import string
chars = string.ascii_letters + string.digits
password = ''.join(random.choice(chars) for _ in range(8))
print("生成したパスワード:", password)
まとめ
- Pythonで乱数を使うには
random
モジュールをインポートする - 目的に応じて
random()
・randint()
・choice()
などを使い分ける - ゲームやデータ処理、パスワード生成など応用範囲が広い