Python - リスト(配列)をランダムに並べ替える

リストをランダムに並べ替えるには、標準モジュールのrandom.shuffleメソッドを使用します。

リスト(配列)をランダムに並べ替える方法

random.shuffleメソッドの引数にリストを渡します。戻り値は無く、渡した配列が変更されます。元の配列を変更したくない場合は次章を参照してください。

random.shuffle() の使用方法

import random

random.shuffle(並べ替えたいリスト)

次のコードは stringList をランダムに並べ替え、結果を表示します。

import random

stringList = ['1:red', '2:blue', '3:green']

# 結果 = ['1:red', '2:blue', '3:green']
print(f'stringList -> {stringList}')

# stringList をシャッフル
random.shuffle(stringList)

# 結果 = ['3:green', '1:red', '2:blue']
print(f'stringList -> {stringList}')

元のリスト(配列)を変更したくない場合

random.sample() メソッドを使用します。引数にリストと返したい要素数 を渡すと、ランダムに並び替えられたリストを返します。引数に渡したリストは変更されません。

random.sample() の使用方法

import random

結果(ランダムに並び替えされたリスト) = random.sample(並べ替えたいリスト, len(並べ替えたいリスト))
結果(並べ替えたいリストから、ランダムに2つ選ばれたリスト) = random.sample(並べ替えたいリスト, 2)

次のコードは orgList をランダムに並び替えた 新しいリスト newList を作成し、結果を表示します。

import random

orgList = ['1:red', '2:blue', '3:green']

# orgList をシャッフル
newList = random.sample(orgList, len(orgList))

# 結果 = ['1:red', '2:blue', '3:green']
print(f'orgList -> {orgList}')
# 結果 = ['3:green', '2:blue'、'1:red']
print(f'newList -> {newList}')

次のコードは orgList から ランダムに2つ値を抽出し、結果を表示します。

import random

orgList = ['1:red', '2:blue', '3:green']

# orgList の中から、ランダムに2つ返す
newList = random.sample(orgList, 2)

# 結果 = ['1:red', '2:blue', '3:green']
print(f'orgList -> {orgList}')
# 結果 = ['1:red', '3:green']
print(f'newList -> {newList}')
サンプルコードの実行結果
サンプルコードの実行結果

検証環境