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