Даже если вы решите проблему - то, что вы создаете новый объект Random каждый раз, когда сеяно на основе текущего времени - ваш код все еще не является ни правильным, ни эффективным. Помните, что рекурсивный метод должен иметь следующие характеристики, чтобы быть корректным:
- Тривиальная задача может быть решена без рекурсии
- Рекурсивный шаг уменьшает проблему
- Конечное число рекурсий всегда сводит проблему к тривиальной проблеме
У вас нет ни одного из этих свойств, поэтому рекурсия - неправильное решение .
Если вам нужно случайное число от 14 до 146, а также кратное 15, вам не нужна рекурсия. Единственными такими числами являются 15, 30, 45, 60, 75, 90, 105, 120 и 135. Так что просто скажите:
private int[] array = { 15, 30, 45, 60, 75, 90, 105, 120, 135 };
private Random random = new Random();
...
return array[random.Next(0, array.Length)];
или даже лучше: выберите случайное число от одного до девяти и умножьте его на 15.
return random.Next(1, 10) * 15;