カテゴリ: Python 更新日: 2025/07/21

Pythonのリストをシャッフルする方法を解説!初心者向けにrandom.shuffleの使い方をやさしく説明

Pythonのリストをシャッフルする方法(random.shuffleの活用)
Pythonのリストをシャッフルする方法(random.shuffleの活用)

先生と生徒の会話形式で理解しよう

生徒

「Pythonで、リストの中身をランダムな順番にしたいときってどうすればいいんですか?」

先生

「そのときはrandom.shuffleという関数を使います。これはリストの中の要素をシャッフル、つまり順番をバラバラにしてくれる便利な機能なんですよ。」

生徒

「じゃんけんの順番や、カードをまぜるようなときにも使えそうですね!」

先生

「その通りです!実際にどう使うか、一緒に見ていきましょう。」

-

1. Pythonのリストをシャッフルするには?

1. Pythonのリストをシャッフルするには?
1. Pythonのリストをシャッフルするには?

Pythonでは、randomモジュールshuffle関数を使うことで、リストの中のデータをランダムに並び替えることができます。

たとえば、数字のリストをシャッフルする場合は以下のように書きます。


import random

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

実行するたびに、リストの順番が変わります。


[3, 1, 5, 2, 4]

このように、random.shuffleはリストをその場で直接書き換える関数です。

2. random.shuffleを使うときの注意点

2. random.shuffleを使うときの注意点
2. random.shuffleを使うときの注意点

random.shuffleを使うには、あらかじめrandomモジュールをimportしておく必要があります。

Pythonの「モジュール」とは、便利な機能がまとまっている箱のようなもので、importという命令を使うことでその中の機能を使えるようになります。

また、shuffle関数は元のリストを直接変更します。新しいリストを返してくるわけではありません。

そのため、元の順番を残しておきたい場合は、あらかじめコピーを取っておく必要があります。


import random

original = [1, 2, 3, 4, 5]
copy_list = original.copy()
random.shuffle(copy_list)

print("元のリスト:", original)
print("シャッフル後:", copy_list)

元のリスト: [1, 2, 3, 4, 5]
シャッフル後: [3, 1, 5, 2, 4]

3. 文字列のリストをシャッフルしてみよう

3. 文字列のリストをシャッフルしてみよう
3. 文字列のリストをシャッフルしてみよう

数字だけでなく、文字列のリストもシャッフルできます。たとえば、名前のリストを使ってランダムな順番を作ることができます。


import random

names = ["田中", "佐藤", "鈴木", "高橋"]
random.shuffle(names)
print(names)

['鈴木', '高橋', '田中', '佐藤']

このように、shuffleはデータの種類に関係なく、リストであれば何でもランダムに並び替えることが可能です。

4. シャッフルを使った実用的な例

4. シャッフルを使った実用的な例
4. シャッフルを使った実用的な例

random.shuffleは、ゲームや抽選、クイズなどさまざまな場面で役立ちます。

たとえば、ランダムに質問を出したいときや、プレイヤーの順番を決めたいときなど。

次の例では、4人の名前からランダムな順番で「じゃんけんの順番」を決めています。


import random

players = ["ゆうき", "あい", "たかし", "さくら"]
random.shuffle(players)

for i, name in enumerate(players, 1):
    print(f"{i}番目: {name}")

1番目: あい
2番目: たかし
3番目: ゆうき
4番目: さくら
-

5. シャッフルではなく、新しい順番を作りたいときは?

5. シャッフルではなく、新しい順番を作りたいときは?
5. シャッフルではなく、新しい順番を作りたいときは?

元のリストを変更せずに、新しいランダムな順番を作りたいときは、random.sampleを使う方法もあります。

sampleは、「元のリストを残しながら、ランダムな並びのコピー」を作ってくれる関数です。


import random

cards = ["A", "B", "C", "D"]
shuffled = random.sample(cards, len(cards))

print("元のカード:", cards)
print("シャッフル結果:", shuffled)

元のカード: ['A', 'B', 'C', 'D']
シャッフル結果: ['C', 'A', 'D', 'B']

random.shuffleは元のデータを壊す、random.sampleは元のデータを壊さない、という違いを覚えておきましょう。

6. random.shuffleと一緒によく使う関数

6. random.shuffleと一緒によく使う関数
6. random.shuffleと一緒によく使う関数

シャッフルした後に、先頭の1人だけを選ぶというような処理をしたいときもあります。

次の例では、シャッフルしたあと最初の1人を「今日の当番」にしています。


import random

students = ["山田", "中村", "鈴木", "井上"]
random.shuffle(students)

print("今日の当番は:", students[0])

今日の当番は: 鈴木

このように、shuffleのあとにインデックス(位置)で取り出せば、ランダムな1人を選ぶことができます。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
Pythonで文字列をリストに変換する方法!split()とjoin()の使い方
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
PHPでメールフォームを作る方法を徹底解説!初心者向けにmail関数とPHPMailerの使い方も紹介
人気記事
No.1
PHP&Python記事人気No1
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
PHP&Python記事人気No2
Pythonのリストを辞書に変換する方法(dict() / zip())
No.3
PHP&Python記事人気No3
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.4
PHP&Python記事人気No4
初心者向けにPHP でファイルを開く・読み込む・書き込む方法(fopen, fwrite, fread)を解説する記事
-