カテゴリ: 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人を選ぶことができます。

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

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

関連記事:
カテゴリの一覧へ
新着記事
New1
PHP
PHPのCookieセキュリティを完全ガイド!初心者でもわかるSecureとHttpOnlyの使い方
New2
PHP
PHPのCSRF対策を完全理解!トークンを使った安全なフォーム送信の仕組みを初心者向けに徹底解説
New3
PHP
PHPのSQLインジェクション対策を完全解説!初心者でも安全にデータベースを扱う方法
New4
PHP
PHPでカウントダウンタイマーを作る方法!初心者向けにやさしく解説
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
Java&Spring記事人気No2
PHP
初心者向けPHPでMySQLからデータを取得する方法(SELECT文)完全ガイド
No.3
Java&Spring記事人気No3
Python
Pythonのリストの重複を削除する方法を解説!初心者向けにsetとdict.fromkeysの使い方をやさしく説明
No.4
Java&Spring記事人気No4
Python
Pythonで経過時間を測る方法をやさしく解説!初心者向けtime.perf_counterとtime.sleepの使い方
No.5
Java&Spring記事人気No5
Python
Pythonでエラースタックトレースを表示・取得する方法を徹底解説!初心者向け例外処理入門
No.6
Java&Spring記事人気No6
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.7
Java&Spring記事人気No7
PHP
PHPのOAuth認証をやさしく解説!Google・Facebookログインを初心者向けに実装しよう
No.8
Java&Spring記事人気No8
PHP
PHPのXSS対策を完全ガイド!初心者でもわかる安全なWebアプリの作り方
-
-