Ну, вы можете использовать тест Колмогорова-Смирнова (KS) для вычисления, fe, p-значения и сортировки по нему
Изменение вашего l oop
for dist_name in dist_names:
dist = getattr(scipy.stats, dist_name)
param = dist.fit(samp)
x = np.linspace(xmin, xmax, 100) #
ax.plot(x,dist(*param).pdf(x),linewidth=4,label=dist_name)
ks = scipy.stats.kstest(samp, dist_name, args=param)
print((dist_name, ks))
Вы можете получить в качестве вывода что-то вроде
('beta', KstestResult(statistic=0.033975289251035434, pvalue=0.9951529119440156))
('norm', KstestResult(statistic=0.03164417055025992, pvalue=0.9982475331007705))
('gumbel_l', KstestResult(statistic=0.113229070386386, pvalue=0.039394595923043355))
, которое говорит о том, что нормальный и бета-версии довольно хороши, но gumbel должен быть последним. Сортировка по P-значению или статистике должна быть легко добавляемой
Ваш результат может отличаться и зависеть от исходного состояния ГСЧ.