Вы можете использовать тот же алгоритм, что и связанный вопрос.Просто сгенерируйте числа от 0 до upperBound - lowerBound + 1
и добавьте lowerBound
к результату.
например (используя код из связанного вопроса):
var upper = 5;
var lower = 3;
foreach (int n in GenerateSequence(upper-lower+1))
{
Console.WriteLine(n+lower);
}
Если вы хотите, чтобы последовательность повторялась (каждый раз по-разному перемешивается), вы можете добавить while (true)
вокруг тела метода итератора.