Random random = new(12345);
const int DieFaceCount = 20;
const int SessionRoles = 160;
const int SessionSamples = 10_000_000;
.Range(1, SessionSamples)
.Select(result => random.Next(1, DieFaceCount + 1))
.Sum() / (double)SessionRoles
.FirstOrDefault(r => r.Result < 8);
Console.WriteLine($"No matching mean found after {SessionSamples} sessions of {SessionRoles} roles.");
Console.WriteLine($"Found a mean of {result.Result} on session # {result.Session}.");