namespace Elisa.Common.Utils; public static class RNG { static readonly Random random = new Random((int)DateTime.Now.Ticks); public static int Next(int min, int max) => random.Next(min, max); public static int Next(int max) => random.Next(max); public static float NextFloat(float min, float max) { double range = (double)max - min; double sample = random.NextDouble(); double scaled = sample * range + min; return (float)scaled; } public static float NextFloat(float max) => NextFloat(0f, max); public static bool NextBool() => random.Next(2) == 0; public static float NextRoll() => NextFloat(100f); public static T NextFromList(IList list) => list[random.Next(list.Count)]; public static U NextFromDict(IDictionary dict) => dict.ElementAt(random.Next(dict.Count)).Value; }