Pythonでランダムな数値を生成!randomモジュールの徹底活用術


 


Pythonでゲームを作ったり、シミュレーションを行ったり、あるいは単にランダムなデータが必要になったりすることはありませんか?そんな時に役立つのが、Python標準ライブラリの**randomモジュールです。この記事では、randomモジュールを使ってランダムな小数や整数を生成する方法**を、具体的な関数の使い方とコード例を交えて詳しく解説します。


 

🎲 random.random()で0.0以上1.0未満の小数を生成

 

最も基本的な乱数生成関数が**random.random()**です。これは、0.0以上1.0未満の範囲でランダムな浮動小数点数(小数)を生成します。

Python
 
import random

# 0.0以上1.0未満の小数を生成
print(random.random())

 

📏 任意の範囲の小数を生成する

 

random.random()を応用することで、任意の範囲の小数を生成できます。例えば、aからbまでの範囲の小数を生成したい場合、以下の計算式を使います。

a + (b - a) * random.random()

Python
 
import random

# 10.0から20.0までの小数を生成
min_val = 10.0
max_val = 20.0
random_float = min_val + (max_val - min_val) * random.random()
print(random_float)

 

🔢 random.randint()で指定範囲の整数を生成

 

特定の範囲内の整数を生成したい場合は、**random.randint(a, b)**が便利です。この関数は、a以上b以下のランダムな整数を返します(abの両方を含みます)。

Python
 
import random

# 1から10までの整数を生成(1と10を含む)
print(random.randint(1, 10))

 

🚶 random.randrange()で柔軟に整数を生成

 

**random.randrange(start, stop, step)**は、Pythonのrange()関数に似た挙動で、より柔軟に整数を生成できます。

 

randrange(stop):0からstop-1まで

 

引数を一つだけ指定した場合、0からstop-1までの整数を生成します。

Python
 
import random

# 0から9までの整数を生成
print(random.randrange(10))

 

randrange(start, stop)startからstop-1まで

 

二つの引数を指定した場合、startからstop-1までの整数を生成します。

Python
 
import random

# 5から10までの整数を生成(5は含むが10は含まない)
print(random.randrange(5, 10))

 

randrange(start, stop, step):ステップを指定して生成

 

三つの引数を指定した場合、startからstop-1までの範囲で、step間隔で整数を生成します。

Python
 
import random

# 0から10までの偶数を生成(0, 2, 4, 6, 8)
print(random.randrange(0, 10, 2))

 

💡 その他の便利な乱数生成関数

 

randomモジュールには、他にも便利な関数がいくつかあります。

 

random.choice():シーケンスからランダムに選択

 

リストやタプルなどのシーケンスから、ランダムに要素を一つ選び出します。

Python
 
import random

# リストからランダムに選択
my_list = ['apple', 'banana', 'cherry']
print(random.choice(my_list))

 

random.shuffle():シーケンスをシャッフル

 

リストの要素をランダムな順序に並べ替えます(インプレースで変更されます)。

Python
 
import random

# リストをシャッフル
cards = ['A', '2', '3', '4', 'J', 'Q', 'K']
random.shuffle(cards)
print(cards)

 

🧮 乱数のシードを設定する

 

乱数シードを設定すると、同じシード値からは常に同じ乱数列が生成されます。これは、デバッグや再現性のあるシミュレーションを行いたい場合に非常に便利です。

Python
 
import random

# 乱数シードを設定
random.seed(42)
print(random.random()) # 実行するたびに同じ値が出力される

random.seed(42) # もう一度同じシードを設定
print(random.random()) # 上と同じ値が出力される

シードを設定しない場合、システム時刻などに基づいて自動的にシードが設定されるため、毎回異なる乱数列が生成されます。


 

まとめ

 

Pythonのrandomモジュールは、ランダムな小数や整数を生成するための強力なツールです。**random.random()で0.0〜1.0未満の小数、random.randint()random.randrange()で指定範囲の整数、さらにrandom.choice()でシーケンスからの選択、random.shuffle()**でシーケンスのシャッフルが可能です。用途に合わせてこれらの関数を使いこなし、Pythonプログラムにランダム性を取り入れましょう!

■プロンプトだけでオリジナルアプリを開発・公開してみた!!

■AI時代の第一歩!「AI駆動開発コース」はじめました!

テックジム東京本校で先行開始。

■テックジム東京本校

「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。

<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。

<月1開催>放送作家による映像ディレクター養成講座

<オンライン無料>ゼロから始めるPython爆速講座