Pythonには、ランダムな値を扱うための「random」モジュールがあります。
その中でも、「複数の値をランダムに選ぶ」ことができるのが `random.choices()` や `random.sample()` です。
この記事では、中学生・高校生にもわかりやすいように `random.choices()` の使い方をメインに、`sample()`との違いも含めて紹介します!
📌 基本の書き方(random.choices)
import random
random.choices(リスト, k=取り出す数)
– `リスト`:選びたいデータの集まり
– `k`:選びたい個数(例:3なら3つ)
✅ 例1:果物をランダムに2つ選ぶ
import random
fruits = ["りんご", "みかん", "バナナ", "ぶどう"]
result = random.choices(fruits, k=2)
print(result)
出力例(毎回変わります):
※同じ果物が2つ出ることもあります(重複あり)。
🎲 例2:出る確率を変える(weights を使う)
import random
answers = ["A", "B", "C"]
result = random.choices(answers, weights=[5, 1, 1], k=1)
print(result)
「A」が一番出やすい設定になっています。
`weights` を使うことで確率をコントロールできます。
🧠 例3:くじ引きを作ってみよう
import random
kuji = ["あたり", "はずれ"]
result = random.choices(kuji, weights=[1, 4], k=1)
print("結果:", result[0])
「あたり」が少なめ、「はずれ」が多めのくじが作れます。
🔁 choices() と sample() の違い
| 関数 | 特徴 | 重複 |
|——|——|——|
| `random.choices()` | 複数の値を**重複あり**で選べる | あり |
| `random.sample()` | 複数の値を**重複なし**で選べる | なし |
#### ✅ 例:sample()の使い方
import random
fruits = ["りんご", "みかん", "バナナ", "ぶどう"]
result = random.sample(fruits, k=2)
print(result)
この場合、**同じ果物が2つ出ることはありません**。
まとめ📚
`random.choices()` を使えば:
– 複数の値をランダムに取り出せる
– 重複してもOKなときに便利
– `weights`で確率も自由に設定できる
一方、`random.sample()` は:
– 同じものを2回以上出したくないときに便利です。
どちらもゲームやクイズ、くじ引き、AIのデータ生成などに活用できます!
