using System.Collections.Generic;
private static Dictionary<Item, int> results;
private static List<Item> items;
private static int maxChance;
private static Random random = new Random();
public static void Main()
var a = new Item("a", 1);
var b = new Item("b", 1);
var c = new Item("c", 1);
var d = new Item("d", 1);
results = new Dictionary<Item, int>();
items = new List<Item>();
maxChance = items.Select(i => i.Chance).Sum();
for(int i = 0; i < 1000000; ++i)
private static Item GetItem()
var r = random.Next(0, maxChance + 1);
for(int i = 0; i < items.Count; ++i)
if(c >= r) return items[i];
throw new ApplicationException("Your algorythm is suck! (" + r +"/" + maxChance +")");
private static void Print<K,V>(Dictionary<K, V> dictionary)
foreach(var k in dictionary.Keys)
Console.WriteLine(k.ToString() + " = " + dictionary[k].ToString());
public Item(string name, int chance)
public override string ToString()