Похоже, вам нужно распределение с «перевернутой колоколообразной кривой» по сравнению с нормальным распределением. Если это так, то следующий метод реализует это распределение с помощью выборки отклонения и модифицированной версии стандартного нормального распределения. «x0» и «x1» - это диапазоны чисел для генерации.
def invertedNormal(x0, x1):
# Get the ends of the PDF (the bounding
# box will cover the PDF at the given range)
x0pdf = 1-math.exp(-(x0*x0))
x1pdf = 1-math.exp(-(x1*x1))
ymax = max(x0pdf, x1pdf)
while True:
# Choose a random x-coordinate
x=random.random()*(x1-x0)+x0
# Choose a random y-coordinate
y=random.random()*ymax
# Return x if y falls within PDF
if y < 1-math.exp(-(x*x)):
return x