リスト(配列)をランダムに並べ替える方法
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}')

検証環境
- Python 3.11.0 (main, Oct 24 2022, 18:26:48) [MSC v.1933 64 bit (AMD64)] on win32
- Microsoft Windows 10 Pro Version 21H2 OS Build 19044.2130 Experience: Windows Feature Experience Pack 120.2212.4180.0