using System.Collections.Generic;
public static void Main()
var mapChances = new Dictionary<string, double>();
var results = new Dictionary<string, int>();
for(var i=0; i<1_000_000; i++)
var r = CalculateRoundMap(mapChances);
foreach(var kv in results.OrderBy(x => x.Value))
Console.WriteLine($"{kv.Key}={kv.Value}");
Console.WriteLine(results.Sum(x => x.Value));
private static string CalculateRoundMap(Dictionary<string, double> mapChances)
var total = mapChances.Values.Sum();
var chances = Random.Shared.NextSingle() * total;
foreach (var (map, chance) in mapChances)
throw new InvalidOperationException();