আপনি .NET 3.5 এ থাকলে আপনি নিম্নোক্ত শীতলতা (VB.NET, C # নয়, তবে ধারণাটি পরিষ্কার হওয়া উচিত) ব্যবহার করতে পারেন:
Random rnd=new Random();
string[] MyRandomArray = MyArray.OrderBy(x => rnd.Next()).ToArray();
সম্পাদনা করুন: ঠিক আছে এবং এখানে সম্পর্কিত VB.NET কোড রয়েছে:
Dim rnd As New System.Random
Dim MyRandomArray = MyArray.OrderBy(Function() rnd.Next()).ToArray()
দ্বিতীয় সম্পাদনা, এমন মন্তব্যের জবাবে যে সিস্টেম.রেন্ডম "থ্রেডসেফ নয়" এবং সময় ভিত্তিক ক্রম ফিরে আসার কারণে "কেবল খেলনা অ্যাপগুলির জন্য উপযুক্ত": আমার উদাহরণ হিসাবে ব্যবহৃত হয়েছে, র্যান্ডম () নিখুঁতভাবে থ্রেড-নিরাপদ, যদি না আপনি যে রুটিনটিতে অ্যারেটিকে এলোমেলো করে পুনরায় প্রবেশের অনুমতি দিচ্ছেন, সেক্ষেত্রে আপনার ডেটাটিকে lock (MyRandomArray)
দূষিত না করার জন্য আপনার যেমন কিছু প্রয়োজন হবে যা এটিও সুরক্ষা দেবে rnd
।
এছাড়াও, এটি ভালভাবে বোঝা উচিত যে সিস্টেম.র্যান্ডম এন্ট্রপির উত্স হিসাবে খুব শক্তিশালী নয়। এমএসডিএন ডকুমেন্টেশনে উল্লিখিত হিসাবে , আপনি System.Security.Cryptography.RandomNumberGenerator
যদি সুরক্ষা-সম্পর্কিত কিছু করছেন তবে আপনার থেকে নেওয়া কিছু ব্যবহার করা উচিত । উদাহরণ স্বরূপ:
using System.Security.Cryptography;
...
RNGCryptoServiceProvider rnd = new RNGCryptoServiceProvider();
string[] MyRandomArray = MyArray.OrderBy(x => GetNextInt32(rnd)).ToArray();
...
static int GetNextInt32(RNGCryptoServiceProvider rnd)
{
byte[] randomInt = new byte[4];
rnd.GetBytes(randomInt);
return Convert.ToInt32(randomInt[0]);
}