فعلا فقط متدی که باهاش اعداد تصادفی تولید میکردید رو دیدم.
روش جالب و خوبی بود ولی بازم 100 درضد بهینه نیست چون متد رندوم در هر مرحله اعدادی رو تولید میکنه که احتمال داره قبلا تولید شده باشه به همین خاطر هست که با RtnList مقایسه میشه که آیا قبلا در لیست وارد شده یا نه. ولی میشد کوتاه ترش هم کرد و شرط هاش رو کمتر کرد و همچنین نیازی به متد Between هم نیست چون عدد تولید شده در متد رندوم خارج از محدوده ای که بهش میدیم نیست.
در متد next متوجه نشدم چرا minvalue رو منهای 1 کرده بودی.
public static int[] GetRandomIndex(int MinValue, int MaxValue)
{
List<int> RtnList = new List<int>();
Random R = new Random();
int Cnt = 0;
while (Cnt < MaxValue - MinValue + 1)
{
int r = R.Next(MinValue , MaxValue + 1);
if (!RtnList.Contains(r))
{
RtnList.Add(r);
Cnt++;
}
}
return RtnList.ToArray();
}