using System.Collections.Generic;
public Item(string title, double freq)
public string Title { get; set; }
public double Freq { get; set; }
public static void Main(string[] args)
var random = new Random();
var items = new List<Item>();
for (int i = 0; i < 25; i++)
items.Add(new Item(i.ToString(), random.NextDouble()));
items = items.OrderByDescending(i => i.Freq).ToList();
var experimentResult = new List<int>();
for (var i = 0; i < 1000000; i++)
var rnd = random.NextDouble();
var r = (int)Math.Ceiling(items.Count * Math.Pow(rnd, 2));
experimentResult.Add(r - 1);
var result = experimentResult
.Select(i => new { Index = i.Key, Count = i.Count() })
foreach (var item in result)
Console.WriteLine($"Index:{item.Index}, Title: {items[item.Index].Title}, Freq: {items[item.Index].Freq.ToString("F3")} - {item.Count} counts");