Pythonで乱数を使いこなす!初心者でもわかるrandomモジュールの基本と応用

Pythonで乱数を扱いたいけれど、どう使えばよいのか迷っていませんか?
乱数は、ゲームやシミュレーション、データ分析、統計処理などさまざまな場面で活用されます。

この記事では、Pythonの標準ライブラリである「random」モジュールを使って、乱数を生成する基本的な方法から、実用的な使い方までをわかりやすく解説します。
初心者の方にも理解しやすいように、コード例を交えながら丁寧に紹介しますので、ぜひ参考にしてください。


randomモジュールとは?

Pythonで乱数を扱うには、「random」モジュールを使います。
このモジュールには、整数、実数、リストからのランダム選択など、さまざまな用途に対応した関数が用意されています。

import random

これが基本のインポート文です。
randomモジュールはPythonに標準で含まれているので、別途インストールする必要はありません。


整数の乱数を生成する:randint()

最もよく使われる関数のひとつが randint() です。

random.randint(1, 10)

これは、1から10までの整数の中からランダムに1つ選んで返してくれます。
両端の値も含まれる点がポイントです。

例えば、サイコロの目をシミュレーションするには:

pythonコピーする編集するdice = random.randint(1, 6)
print(f"サイコロの出目は {dice} です")

小数の乱数を生成する:random()

0以上1未満のランダムな小数を得たい場合は random() を使います。

value = random.random()
print(value)

これは、0.0以上1.0未満の浮動小数点数を返します。

もし、特定の範囲で小数を得たいなら、uniform()を使う方法もあります。

pythonコピーする編集するrandom.uniform(1.5, 5.5)

このように書けば、1.5以上5.5以下のランダムな小数が得られます。


リストからランダムに選ぶ:choice()

ランダムに要素を選びたいときに便利なのが choice() です。

colors = ['赤', '青', '黄', '緑']
print(random.choice(colors))

これは、colorsリストの中からランダムに1つ選んでくれます。
簡単なクイズアプリなどにも応用できます。


複数の要素をランダムに取り出す:sample()とchoices()

sample():重複なしの複数抽出

random.sample(colors, 2)

2つの異なる要素をランダムに選びたいときに使います。
重複なしで選ばれる点が特徴です。

choices():重複ありでもOK

random.choices(colors, k=3)

こちらは重複してもよい場合に使います。
k=3で、3つの要素をランダムに選びます。


リストの要素をシャッフルする:shuffle()

リストの並び順をランダムにしたいときは shuffle() を使います。

numbers = [1, 2, 3, 4, 5]
random.shuffle(numbers)
print(numbers)

この関数はリスト自体を直接書き換えます。
トランプのシャッフルなどにも利用できます。


シード値を設定して乱数を再現する:seed()

乱数は毎回異なる結果が出ますが、同じ結果を得たいときは「シード値」を使います。

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

同じシード値を使えば、実行結果は毎回同じになります。
デバッグや実験で結果を再現したいときに役立ちます。


応用例1:くじ引きプログラム

def lottery():
prizes = ['旅行券', 'テレビ', '図書カード', 'はずれ']
result = random.choice(prizes)
print(f"あなたの結果は… {result}!")

lottery()

ランダムに賞品が決まるくじ引きプログラムです。


応用例2:ランダムパスワードの生成

import string

def generate_password(length=8):
chars = string.ascii_letters + string.digits
return ''.join(random.choices(chars, k=length))

print(generate_password(12))

英数字をランダムに組み合わせたパスワードを自動で作れます。


応用例3:ランダムウォークのシミュレーション

position = 0
for i in range(10):
step = random.choice([-1, 1])
position += step
print(f"{i+1}歩目:位置 = {position}")

これは、1ステップごとに左右どちらかに移動する「ランダムウォーク」の簡易版です。


まとめ

Pythonのrandomモジュールを使えば、さまざまなランダム処理が簡単に実現できます。
基本的な関数だけでも、ゲーム開発、データ分析、セキュリティなど多くの分野で活躍します。

特に覚えておくべき関数は次の通りです。

  • randint():整数の乱数
  • random():0~1の小数
  • uniform():任意の範囲の小数
  • choice():リストから1つ選ぶ
  • sample():リストから重複なしで複数選ぶ
  • choices():リストから重複ありで複数選ぶ
  • shuffle():リストの並び替え
  • seed():乱数の再現性を持たせる

ぜひ、自分のプロジェクトや学習に取り入れて、Pythonの乱数を活用してみてください。

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