Exemple #1
0
        private Card GetRandomCard()
        {
            decimal randomNumber = (decimal)random.GetNewRandom();

            Card[]  cards    = this.cardsRepository.GetAll;
            int     count    = cards.Length;
            decimal oldRange = 0;
            decimal newRange = 0;

            for (int i = 0; i < count; i++)
            {
                newRange = newRange + cards[i].Probability;

                if (oldRange <= randomNumber && randomNumber <= newRange)
                {
                    return(cards[i]);
                }

                oldRange = newRange;
            }

            throw new ArgumentOutOfRangeException(nameof(this.GetRandomCard));
        }