using System.Security.Cryptography;
public static Tuple<int, int> ItemIDValues = new Tuple<int, int>(0, 93);
public static void Main()
int[] numbers = (!string.IsNullOrEmpty(test)) ? test.Split(',').Select(int.Parse).ToArray() : new int[0];
if (numbers.Length == 0 || numbers.Min() < ItemIDValues.Item1 || numbers.Max() > ItemIDValues.Item2)
Console.WriteLine($"Block IDs are out of range. (min: {ItemIDValues.Item1}, max: {ItemIDValues.Item2})");
Random rand = new Random();
string numbersString = string.Join(",", new int[5].Select(_ => rand.Next(1, 100)));
for (int i = 1; i < 10; i++)
Console.WriteLine($"Test-Results {i} {GetRandomBlockFromPattern(numbersString)}");
public static int GetRandomBlockFromPattern(string pattern)
if (!pattern.Contains(",")) { return int.Parse(pattern); }
int[] numbers = Array.ConvertAll(pattern.Split(','), int.Parse);
using (RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider())
byte[] randomNumber = new byte[4];
rng.GetBytes(randomNumber);
int result = BitConverter.ToInt32(randomNumber, 0);
return numbers[Math.Abs(result % numbers.Length)];