【初心者向け】Pythonで乱数を生成する方法まとめ|random関数の使い方と応用例

Python

Pythonでランダムな数値を作りたいとき、randomモジュールを使うのが基本です。

この記事では、基本的な乱数生成から、サイコロ・くじ引き・パスワード生成まで、初心者でもすぐ使えるサンプルコード付きで解説します。

プログラミング学習を進めていくと、乱数生成やランダムな選択をしたい場合が出てくると思います。

この記事の対象

  • random関数について知りたい方
  • ランダムに要素選択する方法を知りたい方
  • 0~1の浮動小数点数を生成する方法を知りたい方
スポンサーリンク
スポンサーリンク

乱数とは?

乱数(らんすう)とは、一定の規則性がない数字のことです。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()などを使い分ける
  • ゲームやデータ処理、パスワード生成など応用範囲が広い

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