Skip to main content

Create a random item in a list

To create a random item in a SharePoint list:
 
  
private static SPListItem GetRandomItem(SPListItemCollection list)
  {
   var theIDs = new List<int>();
   foreach (SPListItem item in list)
   {
    theIDs.Add(item.ID);
   }
 
   theIDs.Shuffle();
   Int32 val = theIDs.FirstOrDefault();
   SPListItem randomItem = list.GetItemById(val);
   return randomItem;
  }
 
The randomization is done here:
 
        public static void Shuffle(this IList list)
        {
            var randomNumber = new Random(DateTime.Now.Millisecond);
            var n = list.Count;
            while (n > 1)
            {
                n--;
                var k = randomNumber.Next(n + 1);
                var value = list[k];
                list[k] = list[n];
                list[n] = value;
            }
        }
QED 

Comments