random.sample
возвращает список уникальных значений ( см. Документы .) Он называется так:
sample = random.sample(range(100), 5)
Изменить: Чтобы использовать это, чтобы получить фиксированную сумму, я предлагаю прочитать эту ветку , где важный код:
from random import*
def f(n,s):
r=min(s,1)
x=uniform(max(0,r-(r-s/n)*2),r)
return n<2and[s]or sample([x]+f(n-1,s-x),n)