仕事で、指定した確率(重み付け)に従ってリストの中からランダムで一つ取得するという仕組みが必要になったのでこんなのを書いてみました。 言語はPythonです。NYSLでどーぞ。 import random def choose(candidates, probabilities): probabilities = [sum(probabilities[:x+1]) for x in range(len(probabilities))] if probabilities[-1] > 1.0: #確率の合計が100%を超えていた場合は100%になるように調整する probabilities = [x/probabilities[-1] for x in probabilities] rand = random.random() for candidate, probability in zip