範囲を指定して乱数を生成(整数)
randintメソッドを使用します。引数に最小値と最大値を渡すと、その範囲内で乱数を返します。random.randint() の使用方法
import random
結果(最小値 <= x =< 最大値) = random.randint(最小値, 最大値)
次のコードは -10 ~ 10 の乱数を生成し、結果を表示します。
import random
# 結果 = -10 ~ 10
intValue = random.randint(-10, 10)
print(f'random.randint(-10, 10) -> {intValue}')
引数にint以外の値を渡すとエラーが発生します。
# 少数を渡すとエラーが発生する
intValue = random.randint(0, 10.5)
# 文字列を渡すとエラーが発生する
intValue = random.randint(0, '10')
範囲と増加量(step)を指定して乱数を生成(整数)
randrangeメソッドを使用します。引数に開始値、終了値、増加量を渡します。開始値 <= x < 終了値 の範囲内で、開始値 + 増加量 の値を返します。random.randrange() の使用方法
import random
結果(開始値 <= x(開始値+増加量) < 終了値) = random.randrange(開始値, 終了値, 増加量)
# 結果 = 0 ~ 9
intValue = random.randrange(0, 10, 1)
# 結果 = 0, 2, 4, 6, 8
intValue = random.randrange(0, 10, 2)
# 結果 = 0, 3, 6, 9
intValue = random.randrange(0, 10, 3)
# 結果 = 0, 4, 8
intValue = random.randrange(0, 10, 4)
# 結果 = 0, 5
intValue = random.randrange(0, 10, 5)
0.0 <= x < 1.0 の乱数を生成(浮動小数点数)
randomメソッドを使用します。randomメソッドは 0.0 <= x < 1.0 の範囲で浮動小数点数(float)を返します。random.random() の使用方法
import random
結果(0.0 <= x < 1.0) = random.random()
0.0 <= x < 1.0 の乱数を生成し、結果を表示します。
import random
# 結果 = 0.0 <= x < 1.0
floatValue = random.random()
print(f'random.random() -> {floatValue}')
範囲を指定して乱数を生成(浮動小数点数)
uniformメソッドを使用します。引数に最小値と最大値を渡すと、その範囲内で乱数を返します。第2引数に渡す 最大値 または 最小値 が返るかは、浮動小数点の丸めに依存します。random.uniform() の使用方法
import random
結果(最小値 <= x =< 最大値(丸めに依存)) = random.uniform(最小値, 最大値)
結果(最小値(丸めに依存) <= x =< 最大値) = random.uniform(最大値, 最小値)
次のコードは -0.005 <= N <= 0.005 の乱数を生成し、結果を表示します。
import random
# 結果 = -0.005 <= N <= 0.005
floatValue = random.uniform(-0.005, 0.005)
print(f'random.uniform(-0.005, 0.005) -> {floatValue}')
# 結果 = -0.005 <= N <= 0.005
floatValue = random.uniform(0.005, -0.005)
print(f'random.uniform(0.005, -0.005) -> {floatValue}')

リスト(配列)をランダムに並べ替える
random.randint() メソッドの引数にリストを渡すと、リストがランダムに並び替えされます。詳細は次の記事を参照してください。参考資料
検証環境
- Python 3.11.0 (main, Oct 24 2022, 18:26:48) [MSC v.1933 64 bit (AMD64)] on win32
- Microsoft Windows 10 Pro Version 21H2 OS Build 19044.2130 Experience: Windows Feature Experience Pack 120.2212.4180.0