public int PickRandomIndex(DeterministicRandom random, int seedOffset) { var r = random.RandomExclusive(0, m_sum, seedOffset); return(m_cummulatedWeights.TakeWhile(_weightSum => _weightSum <= r).Count()); }