Строго говоря, вы не можете иметь нормально распределенные целые числа. Может быть, вам нужен вывод нормального распределения, отсортированного по сегментам. В этом случае вы, вероятно, захотите сместить и масштабировать свое нормальное распределение в соответствии с размером вашего массива. Если вы просто возьмете образцы из стандартного нормального распределения (среднее = 0 и масштаб = 1), вы получите выборки между -2 и 2 примерно в 99% случаев.
Предположим, вы хотите, чтобы случайные выборки из массива размера N. Вы хотите, чтобы записи в середине выбирались чаще, чем выборки в конце, но вы хотите, чтобы выборки вблизи концов иногда появлялись, скажем, 1% времени. Затем вы можете захотеть вычислить что-то вроде N / 2 + N * z / 4, где z - ваш стандартный нормаль, а затем привести эти числа к целому числу. Если вы сделаете это, вы будете иногда получать индекс вне вашего массива. Просто проверьте это и получите новое значение, когда это произойдет.