Gerando números randômicos para sorteio de jogos de azar C#(CSharp)

Autor : Antonio Carlos Ferreira de Azevedo
Postado em : 07/11/2018


Sorteando números aleatórios

Outra rotina que alguém estava precisando e acabei fazendo, fica ai para quem precisar, faz sorteio de números randômicos aleatórios, você pode configurar o inicio e fim dos números a serem sorteados, a quantidade de sorteios, se os números sorteados podem se repetir e se deseja o resultado em ordem de sorteio.

/// <summary>
/// 
/// http://www.codigoexpresso.com.br
/// Desenvolvida por : Antonio Azevedo
/// 
/// Faz sorteios randomico de numeros
/// 
/// Exemplo : 
/// int[] meuVetor = SortearNumeros()  
///       Sorteio com valores defalut;
/// int[] meuVetor = SortearNumeros(1,60,6,false,false) ;
///       Sorteio com parametros ideais para megasena
/// 
/// </summary>
/// <param name="valorMinimo">Valor minimo para sorteio Default=1</param>
/// <param name="valorMaximo">Valor maximo para sorteio Default=60</param>
/// <param name="quantidadeSorteio">Quantidade de numeros a sortear Deault = 6</param>
/// <param name="poderepetir">Se pode repetir um numero sorteado Default = false</param>
/// <param name="emOrdemSorteio">Se deseja os numeros na ordem em que foram sorteados Default = true</param>
/// <returns>um array (int[]) com os numeros do sorteio</returns>
public int[] SortearNumeros(int valorMinimo = 1, int valorMaximo = 60, int quantidadeSorteio = 6, Boolean poderepetir = false, Boolean emOrdemSorteio = true)
{

    if (valorMinimo < 0 || valorMinimo > valorMaximo || quantidadeSorteio < 1)
    {
        return new int[0];
    }

    int[] sorteio = new int[quantidadeSorteio];

    Random random = new Random();
    int _sorteio = -1; 

    for (int qs = 0; qs < quantidadeSorteio; qs++)
    {
        _sorteio = -1;

        while (_sorteio == -1) 
        {
            _sorteio = random.Next(valorMinimo, valorMaximo+1);

            if (poderepetir == false)
            {
                <kbd>sorteio = (sorteio.Where(x => x ==</kbd>sorteio).ToList().Count() > 0) ? -1 : _sorteio;
            }
        }

        sorteio[qs] = _sorteio;
    }

    return (emOrdemSorteio)? sorteio : sorteio.OrderBy(i => i).ToArray() ;            
}

Espero que ajude mais alguém, quem sabe!





Comentários