【Python入門】random.choices() の使い方と sample() との違いもやさしく解説!

2025/10/23
プログラミング入門:

【Python入門】random.choices() の使い方と sample() との違いもやさしく解説!


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のデータ生成などに活用できます!