カテゴリ: Python 更新日: 2025/12/20

Pythonのリストをシャッフルする方法を完全ガイド!初心者でもわかるrandom.shuffleの使い方

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

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

生徒

「先生、Pythonでリストの順番をバラバラにする方法ってありますか?」

先生

「はい、Pythonにはrandom.shuffle()という機能があって、リストの中身を簡単にシャッフルできますよ。」

生徒

「それって、例えばカードを切るみたいにバラバラにできるってことですか?」

先生

「まさにその通り!カードをよく切るみたいに、リストの並び順をぐちゃぐちゃにできるんです。」

1. Pythonのリストとは?

1. Pythonのリストとは?
1. Pythonのリストとは?

リストは、複数のデータをまとめて保存できる箱のようなものです。たとえば、好きな食べ物を並べるとこんな感じです。


favorite_foods = ["ラーメン", "カレー", "寿司", "ハンバーグ"]

このように、[]の中に文字を入れて、カンマで区切ることで、文字列のリストが作れます。

2. random.shuffle()とは?リストをシャッフルする基本

2. random.shuffle()とは?リストをシャッフルする基本
2. random.shuffle()とは?リストをシャッフルする基本

random.shuffle()は、Pythonでリストの中身をシャッフル(=順番をランダムに並び替えること)するための関数です。

まずは、シャッフルを使う基本のコードを見てみましょう。


import random

colors = ["赤", "青", "黄", "緑"]
random.shuffle(colors)
print(colors)

['青', '赤', '緑', '黄']

このように、random.shuffle()を使うと、元のリストの順番がバラバラになります。

3. importってなに?

3. importってなに?
3. importってなに?

シャッフルを使うには、最初にrandomというモジュール(=機能の詰まった道具箱)を読み込む必要があります。これがimportという命令です。

パソコンで言うと、アプリを開いて使えるようにするイメージです。import randomは、「ランダムに関する道具を使えるようにするよ」という意味になります。

4. random.shuffle()の注意点

4. random.shuffle()の注意点
4. random.shuffle()の注意点

random.shuffle()元のリストを直接書き換えるタイプの関数です。


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

このようにすると、numbersの順番が変わり、もとの順番には戻せません。もし元の順番もあとで使いたい場合は、コピーを作ってからシャッフルするようにしましょう。

5. リストをコピーしてシャッフルしたいときは?

5. リストをコピーしてシャッフルしたいときは?
5. リストをコピーしてシャッフルしたいときは?

元のリストをそのままにしておいて、別のリストでシャッフルしたいときは、copy()やスライス[:]を使います。


import random

animals = ["ねこ", "いぬ", "うさぎ", "とり"]
copy_animals = animals[:]
random.shuffle(copy_animals)

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

元のリスト: ['ねこ', 'いぬ', 'うさぎ', 'とり']
シャッフル後: ['とり', 'ねこ', 'いぬ', 'うさぎ']

こうすれば、元の並びも残しながら、シャッフルしたバージョンも使えます。

6. 空のリストをシャッフルすると?

6. 空のリストをシャッフルすると?
6. 空のリストをシャッフルすると?

リストが空っぽの場合、つまり中に何も入っていないときにシャッフルしても、特にエラーにはなりません。


empty = []
random.shuffle(empty)
print(empty)

[]

このように、空のリストはそのままです。中身がないので、当然順番も変わりませんね。

7. リストをシャッフルしたら何に使える?

7. リストをシャッフルしたら何に使える?
7. リストをシャッフルしたら何に使える?

random.shuffle()は、ゲームのカードを混ぜる処理や、クイズの選択肢の順番を変えるときなどにとても便利です。

たとえば:

  • ジャンケンの手をランダムに出す
  • 今日の占いで順番をランダムに
  • 抽選や順番決めに使う

簡単なコードでいろんなアイデアが広がるので、ぜひ使いこなしてみましょう!

まとめ

まとめ
まとめ

Pythonでリストの並び順を自由に変えるための方法として紹介したrandom.shuffle()は、日常のプログラムでも学習の場面でもよく使われるとても重要な機能です。この記事では、リストの基本、シャッフルの仕組み、importの意味、コピーを使った元のリストの保持、空のリストの扱いなど、初心者がつまずきやすいポイントを丁寧に確認しました。リストというデータ構造は、Python学習の中で頻繁に登場する基本的な概念であり、順番を扱う処理や並び替えの動きを直感的に理解するために欠かせません。 また、random.shuffle()が元のリストを直接書き換える仕組みである点は、プログラムの動きを理解するうえで特に重要です。一度実行すると元の順番には戻せないため、データの扱い方をしっかり把握しておく必要があります。特に、ゲーム開発やクイズアプリ、さらには簡単なランダム抽選など、日常的に利用できる応用範囲が広いことから、使い方を覚えておくことでプログラムの幅が大きく広がります。同じシャッフル処理でも、コピーを作ってから実行することで、元のリストを保持したままランダムな並びも手元に残すことができます。この方法は、複数のデータパターンを扱いたい場合に非常に便利で、初心者がまず覚えておきたいポイントです。 また、空のリストをシャッフルしても何も起こらないという特徴は、実際の開発において「予期しないエラーを防ぐための仕組み」を理解する良いきっかけになります。Pythonでは安全性と柔軟性の両方が大切にされており、こうした動作はその一例です。実際にコードを書いて試しながら理解すると、より自然に仕組みが身についていきます。 さらに、シャッフル処理は小さな例にとどまらず、多くのプログラムに応用できます。ゲームのカード配布、占いの並び替え、抽選処理、テスト問題の並び替えなど、身近で使える場面が数多く存在します。Pythonのリストとシャッフルを理解すると、仕組みを自分なりに組み合わせて新しいアイデアを作れるようになり、プログラミングの楽しさがより深まります。今回の内容を振り返りながら繰り返し試していくことで、応用力も自然と身についていくでしょう。 ここでは、記事内容を踏まえて応用しやすいコードも紹介しておきます。さまざまなケースで試しながら、シャッフルを活用する習慣をつけていくと良いでしょう。

サンプルコードでさらに理解しよう

以下に、複数の処理を組み合わせた応用的なコード例を紹介します。


import random

# 番号と名前をまとめたリスト
members = [
    {"番号": 1, "名前": "さくら"},
    {"番号": 2, "名前": "あおい"},
    {"番号": 3, "名前": "はるか"},
    {"番号": 4, "名前": "ゆうき"},
]

# リストをコピーしてシャッフル
shuffle_members = members[:]
random.shuffle(shuffle_members)

print("元の順番:")
for m in members:
    print(m)

print("\nシャッフル後:")
for m in shuffle_members:
    print(m)

このように、コピーしたリストをシャッフルすることで元の並びを保持しつつ、新しい組み合わせを作ることができます。実際のアプリケーションでも、データの保存と加工を分けて扱うことは非常に重要であり、今回学んだ内容がそのまま応用できる形です。

先生と生徒の振り返り会話

生徒

「リストをシャッフルするだけで、こんなにいろいろなことができるんですね。コピーして使う方法もすごく便利だと思いました。」

先生

「そうですね。random.shuffle()は扱いやすくて、ゲームや抽選の機能を作るときなどにも役立ちます。元の順番を保持したいときはコピーが必須ですよ。」

生徒

「シャッフルしても元のリストが変わらないようにできるのは安心ですね。間違ってデータが壊れる心配も減りそうです。」

先生

「そのとおりです。データの扱い方を意識できるようになると、プログラムの質がぐっと上がります。実際に自分で書きながら覚えていきましょう。」

生徒

「はい!たくさん練習して、もっといろいろな場面でシャッフルを使ってみます!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Pythonでリストの順番をランダムにするにはどうすればいいですか?

Pythonでリストの順番をバラバラに並び替えるには、random.shuffle()という関数を使います。これはリストの中身をランダムにシャッフルしてくれる便利な機能です。
カテゴリの一覧へ
新着記事
New1
Flask
Flaskでデータベースエラーを処理する方法!初心者にもわかる例外の使い方
New2
Flask
FlaskでリダイレクトやURL生成を行う方法!便利な関数の使い方を解説
New3
Flask
FlaskでPOSTリクエストを受け取る方法!初心者でもわかるJSONデータの受け取り方
New4
Flask
Flask‑Mailの使い方!アプリからメールを送信する基本方法を解説
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Django
DjangoとFlaskの違いを完全比較!初心者でもわかるPythonフレームワーク入門
No.3
Java&Spring記事人気No3
Python
Pythonでリストをコピーする方法!copy()・スライス・list()の使い方を比較
No.4
Java&Spring記事人気No4
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.5
Java&Spring記事人気No5
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.6
Java&Spring記事人気No6
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.7
Java&Spring記事人気No7
Python
Pythonで空白や不要な文字を削除する方法!strip(), rstrip(), lstrip() の使い方を初心者向けに解説
No.8
Java&Spring記事人気No8
Python
Pythonのmatch文(パターンマッチング)とは?switch文の代替としての使い方をやさしく解説