Python|乱数を生成する:randomモジュール

1. はじめに

Pythonでランダムな数値やデータを扱いたいときに便利なのが、randomモジュールです。

この記事では、Python初心者〜中級者の方に向けて、「Python|乱数を生成する:randomモジュール」をテーマに、randomモジュールの基本的な使い方から応用例、注意点までを丁寧に解説します。

このモジュールを使うことで、ランダムな数の生成、リストからのランダムな選択、シャッフルなど、幅広い処理が簡単に実現できます。ゲーム開発やデータ分析など、実務でも活用される場面が多いので、ぜひ使い方をマスターしましょう!

 

2. Pythonのrandomモジュールの基本

2-1. randomモジュールとは?

Pythonの標準ライブラリの一つであるrandomモジュールを使うと、擬似乱数(疑似的なランダム値)を簡単に生成できます。インストール不要で、import randomするだけで使えます。

2-2. 整数の乱数を生成:random.randint()

import random

# 1から10の範囲で乱数を生成
num = random.randint(1, 10)
print(f"ランダムな整数:{num}")

実行結果:

ランダムな整数:7

2-3. 0.0以上1.0未満の浮動小数点数を生成:random.random()

# 0.0以上1.0未満の乱数を生成
value = random.random()
print(f"ランダムな小数:{value}")

実行結果:

ランダムな小数:0.634578324

2-4. 範囲指定の小数:random.uniform()

# 5.0から10.0の範囲で乱数を生成
value = random.uniform(5.0, 10.0)
print(f"ランダムな小数:{value}")

実行結果:

ランダムな小数:7.4567432

 

3. よくある使い方・応用例

3-1. リストからランダムに要素を選ぶ:random.choice()

fruits = ['apple', 'banana', 'orange', 'grape']
picked = random.choice(fruits)
print(f"選ばれたフルーツ:{picked}")

実行結果:

選ばれたフルーツ:banana

3-2. 複数の要素をランダムに抽出:random.sample()

# 3つのフルーツをランダムに選ぶ
selected = random.sample(fruits, 3)
print(f"選ばれたフルーツ:{selected}")

実行結果:

選ばれたフルーツ:['orange', 'apple', 'grape']

3-3. リストをランダムに並び替える:random.shuffle()

numbers = [1, 2, 3, 4, 5]
random.shuffle(numbers)
print(f"シャッフルされたリスト:{numbers}")

実行結果:

シャッフルされたリスト:[3, 1, 5, 2, 4]

3-4. サイコロのような用途に便利

# サイコロを振る
dice = random.randint(1, 6)
print(f"サイコロの目:{dice}")

実行結果:

サイコロの目:4

 

4. 注意点・エラー対策

4-1. import忘れに注意

randomモジュールは標準ライブラリですが、import randomを忘れるとエラーになります。

エラー例:

NameError: name 'random' is not defined

4-2. 範囲外のsample()に注意

リストの要素数以上の数をrandom.sample()で指定するとエラーになります。

# 要素数4に対して5個要求 → エラー
random.sample(fruits, 5)

エラー例:

ValueError: Sample larger than population or is negative

4-3. 毎回同じ乱数にしたい場合はrandom.seed()

検証やテストで毎回同じ乱数結果が欲しいときは、random.seed()を使いましょう。

random.seed(42)
print(random.randint(1, 10))

実行結果:

10

 

5. まとめ

今回はPythonのrandomモジュールを使った乱数の生成方法について解説しました。以下のポイントを押さえておきましょう:

  • random.randint():整数の乱数
  • random.random():0.0〜1.0の小数
  • random.choice()sample():リスト操作
  • shuffle():並び替え処理

実務でも、ランダムなデータ生成やゲームロジック、サンプルデータの作成など多くの場面で活躍するモジュールです。

学習のコツ: まずはコードを何度も実行して、「どう変化するのか」を体験的に理解することが大切です。randomは「動きがあるコード」なので楽しみながら学べます!

タイトルとURLをコピーしました