Смотрите, для того, чтобы угадать число, нужно его сначала загадать.
Вы сами понимаете, чем различаются уровни сложности - а именно, диапазоном загадываемых значений.
То есть, если подумать (никогда бы не подумал что над этим нужно думать) - вам нужно генерировать числа из разных диапазонов, в соответствии с уровнем сложности.
Сначала нужно определиться, какие у вас будут уровни сложности - проще всего завести новый enum:
enum Level
{
Easy,
Normal,
Hard,
}
Далее, вам необходимо как-то представлять свой диапазон. Можно сделать массив на два элемента, можно использовать кортеж, но мы создадим новую сущность под это дело:
class Range
{
public Range(int min, int max)
{
Min = min;
Max = max;
}
public int Min { get; }
public int Max { get; }
}
Далее, нужно как-то связать наши уровни сложности и диапазоны. Тут не будем усложнять, пусть будет просто метод:
private static Range GetRange(Level level)
{
switch (level)
{
case Level.Easy: return new Range(0, 10);
case Level.Normal: return new Range(0, 50);
case Level.Hard: return new Range(0, 100);
}
}
Теперь осталось только сгенерировать случайное число, для этого вам нужен генератор случайных чисел, и метод, собственно генерирующий числа на основе уровней сложности.
Добавляете в свой класс поле, помним о том, что Random непотокобезопасный (вряд ли это проблема в вашем случае, но знать надо):
private static readonly Random = new Random();
Добавляете метод, генерирующий числа:
private static int GenerateNumber(Level level)
{
var range = GetRange(level);
return Random.Next(range.Min, range.Max);
}
И там, где вы будете угадывать число, вызываете этот метод с желаемым уровнем сложности.
Как видите, если подумать - ничего сложного тут нет, всё дело техники.