Pythonのrandom入門:ランダムな値を作る

入門 | 10分 で読める | 2026.07.12

公式ドキュメント

今回やること

ゲームやくじ引きでは、ランダムな値が必要になります。

randomを使うと、サイコロやランダム選択を簡単に作れます。

今回は、整数の乱数、リストからの選択、シャッフルを練習します。

randint()は範囲内の整数、choice()はリスト内の1要素、shuffle()はリスト自体の並び順を変えます。標準ライブラリを使う仕組みはimportの基本、リストの変更はリスト操作で確認できます。

サイコロを作る

import random

dice = random.randint(1, 6)
print(dice)

randint(1, 6) は、1から6までの整数をランダムに返します。

リストから選ぶ

import random

subjects = ["英語", "数学", "Python"]
selected = random.choice(subjects)
print(selected)

choice() は、リストから1つ選びます。

順番を混ぜる

import random

cards = ["A", "B", "C", "D"]
random.shuffle(cards)
print(cards)

shuffle() は、リストの順番をその場で混ぜます。

動作確認

3つのコードをそれぞれ保存して実行し、サイコロは1〜6、科目はリスト内のいずれか、cardsは4要素を保ったまま順番が変われば成功です。値が毎回違うのは正常です。

同じ結果で確認したいテストでは、random.seed(1)を乱数生成前に置きます。本番のくじ引きでシードを固定すると毎回同じ結果になるため、検証時だけ使います。

他の乱数処理へ影響させたくない場合は、専用の生成器を作れます。

import random

rng = random.Random(1)
print(rng.randint(1, 6))
print(rng.choice(["英語", "数学", "Python"]))

よくあるエラー

エラー原因修正
NameErrorimport random がない先頭にimport文を書く
IndexError空のリストから選んだリストに値を入れる
結果が毎回違う乱数の仕様テストではシードを使う

random.shuffle(cards)の返り値はNoneです。shuffled = random.shuffle(cards)ではなく、実行後のcardsを表示します。パスワードやトークンのような秘密値には通常のrandomではなく、用途に合う安全な仕組みが必要です。

練習

  1. サイコロを1回振る
  2. 1から100の乱数を出す
  3. 科目リストから1つ選ぶ
  4. じゃんけんの手をランダムに選ぶ

次のステップ

データと処理をまとめる考え方は Pythonのクラス入門 で扱います。

乱数を制作へつなげるなら計算ドリルじゃんけんゲームへ進みます。

参考リソース

← 一覧に戻る
PR
PR
PR
PR