Выбор случайного значения
Заполняем массив 50, 49, 49, 48, 48, 48, 47, 47, 47, 47… и выбираем случайное из него
Стандартные rand() возвращают, обычно, равномерно распределенную случайную величину. Но есть формулы для преобразования их в случайные величины с другими распространенными распределениями.
Я слышал про преобразование Бокса-Мюллера, но оно переводит пару равномерных в пару нормальных. Попробуйте поискать что-то подобное для экспоненциального, например.