Ir para o conteúdo

Sorteador de números para sorteios e rifas

Escolha o intervalo, diga quantos números quer e sorteie. O acaso vem do gerador criptográfico do seu navegador — o mesmo que cria chaves —, e nada sai do seu aparelho.

O primeiro número que pode sair

O último número que pode sair

De 1 a 10 por sorteio

O sorteio roda no seu navegador — cada toque tira números novos.

Números sorteados 65 Exemplo — toque em Sortear

Histórico desta sessão (últimos 5)

Sorteioainda não sorteado
Sorteioainda não sorteado
Sorteioainda não sorteado
Sorteioainda não sorteado
Sorteioainda não sorteado

O botão de histórico leva a sessão inteira, com a hora de cada rodada — não só as cinco linhas à vista.

Sorteio feito dentro do seu navegador, com crypto.getRandomValues. Nada é enviado, gravado ou guardado.

Como melhorar esta calculadora?

Faltou uma verba, o número saiu diferente do seu contracheque ou alguma palavra ficou confusa? Escreva. Quem lê é a pessoa que mantém o site, e é daí que sai a próxima versão desta página.

Escrever uma sugestão →

Abre seu programa de e-mail com o assunto e a página já preenchidos, e com as perguntas que ajudam a entender o caso. Sem formulário, sem cadastro, sem cookie.

publicidade

336×280 · in-content

De onde vem o acaso deste sorteio

Quase todo sorteador da internet chama Math.random(). Ele é rápido e resolve bem a pergunta "quem lava a louça hoje" — mas é pseudoaleatório: parte de um estado interno e produz uma sequência que, conhecido esse estado, é inteiramente previsível. A especificação da linguagem nem exige que ele seja imprevisível.

Esta página usa crypto.getRandomValues(), que vem do gerador do próprio sistema operacional — o mesmo que produz chaves criptográficas, alimentado pelo ruído físico que a máquina coleta. Não há semente, não há relógio, não há contador. É a diferença entre "aleatório o bastante para uma brincadeira" e aleatório o bastante para uma rifa com testemunha.

O viés que quase todo sorteador tem, e este não

O gerador entrega um número inteiro entre 0 e 4.294.967.295 (são 232 valores). Para virar "algo entre 1 e 3", o caminho óbvio é tirar o resto da divisão — e o caminho óbvio está errado. 232 não é múltiplo de 3: sobra um valor. Esse valor a mais cai sempre no mesmo resto, e o número 1 passa a sair um tiquinho mais que o número 3.

O desvio é minúsculo e invisível a olho nu — e é exatamente por isso que ele atravessa a vida inteira de um sorteador sem ninguém perceber. A correção é rejeitar a sobra: a página descarta os valores da cauda que não completa um ciclo inteiro e pede outro ao gerador. O que resta é um bloco de tamanho exatamente divisível, e aí cada número do seu intervalo tem rigorosamente a mesma chance.

Sortear sem repetir é embaralhar, não sortear de novo

Com a repetição desligada, a página não fica tentando números até achar um que ainda não saiu — isso demora cada vez mais à medida que o intervalo se esgota. Ela embaralha pelo método de Fisher-Yates, sorteando a cada passo uma posição entre a atual e o fim da lista, inclusive a atual. O detalhe do "inclusive" é o que separa um embaralhamento uniforme de um em que várias ordens são impossíveis — e é o que o teste automatizado desta página verifica, contando as seis ordens possíveis de três números.

O que também não se faz: ordenar a lista com um comparador aleatório (sort(() => Math.random() - 0.5)). Parece embaralhar, e não embaralha: o resultado depende do algoritmo de ordenação do navegador e sai visivelmente torto.

Nada sai do seu navegador

Não há requisição de rede em nenhum ponto do sorteio: o gerador é do navegador, a conta é do navegador e o histórico vive na memória da aba. Nenhum número é enviado, gravado em servidor ou salvo no seu aparelho — o que também quer dizer que recarregar a página apaga o histórico. É o mesmo compromisso do Gerador de CPF e do Gerador de CNPJ, os outros geradores do site.

Como registrar um sorteio que alguém pode contestar

Quem sorteia entre amigos não precisa de nada disso. Quem sorteia uma rifa, um prêmio de live ou um brinde entre clientes precisa: a discussão nunca é sobre o gerador de números, é sobre quem viu o quê, e quando. Quatro hábitos resolvem quase todos os casos.

  • Combine as regras antes, por escrito. Quantos números, de quanto até quanto, com ou sem repetição, e o que acontece se sair um número não vendido. Publique isso no mesmo lugar em que a rifa foi anunciada, antes de sortear. Regra definida depois do resultado não convence ninguém.
  • Deixe a tela visível durante o sorteio. Numa live, mostre o formulário já preenchido, o intervalo e a quantidade, antes de tocar em Sortear. Gravando o vídeo, a mesma coisa: o valor de prova está em ver a configuração e o clique na mesma tomada, sem corte.
  • Tenha alguém de fora olhando. Uma pessoa não envolvida no resultado, presente ou na chamada, vale mais que qualquer print. É a testemunha, não o software, que responde à pergunta "e se você tivesse sorteado dez vezes até dar o seu primo?".
  • Guarde o histórico logo depois. O botão de copiar leva todas as rodadas da sessão com a hora de cada uma — inclusive as que você fez para testar. Publicar a sessão inteira é mais forte que publicar só o número vencedor, justamente porque mostra quantas vezes se sorteou.

O histórico à vista existe por esse motivo: as últimas 5 rodadas ficam na tela, com o horário, para que um print acidental já capture o contexto e não apenas o número final.

Quando sortear direito não basta

Um sorteio bem feito é condição necessária e não é condição suficiente. Três situações em que o problema deixa de ser o número:

  • Distribuir prêmio ao público para promover um produto. Promoção comercial com sorteio é atividade regulada no Brasil e costuma exigir autorização prévia do órgão federal competente, com regulamento registrado. Esta página resolve o sorteio; a autorização é outro assunto, anterior a ele, e você precisa se informar sobre ela antes de anunciar.
  • Rifa com fim beneficente. Tem regra própria e não é a mesma da promoção comercial. Vale a mesma advertência: o gerador de números não é o que torna a rifa regular.
  • Sorteio interno com efeito em direito de alguém. Escala de plantão, ordem de férias, distribuição de vaga. Aqui o que decide não é o acaso, é o que a norma interna ou o acordo coletivo dizem sobre como aquilo se decide — e um sorteio pode simplesmente não ser o critério válido.

Esta página é uma ferramenta de sorteio e nada além disso: não guarda nada, não emite comprovante, não sorteia nomes e não substitui a regra aplicável ao seu caso. Para as outras contas do dia a dia, veja as calculadoras de utilidades; para gerar dados de teste, os geradores.

Perguntas frequentes

O sorteio é realmente aleatório?

É aleatório no sentido forte da palavra: cada número sai do gerador criptográfico do seu próprio navegador (crypto.getRandomValues), que é a mesma peça usada para criar chaves e senhas e é alimentada pelo ruído físico que o sistema operacional coleta. Não há semente, não há data, não há contador — ninguém, nem quem escreveu esta página, consegue prever ou repetir o resultado. E a conta que transforma esse número em "algo entre 1 e 100" descarta a sobra que criaria viés, em vez de simplesmente tirar o resto da divisão.

Posso usar este sorteador para uma rifa ou uma live?

Pode, e é para isso que a página foi feita: o resultado aparece grande, o histórico da sessão mostra as rodadas anteriores e nada é enviado a servidor nenhum, então não existe a suspeita de "o site escolheu o ganhador". O que sustenta um sorteio contestado não é o software, é o registro: combine o intervalo e a quantidade antes, deixe a tela visível durante a transmissão ou grave o vídeo, e guarde o histórico logo depois. Sorteio de prêmio ao público pode ainda depender de autorização — isso é outro assunto e não se resolve aqui.

O resultado fica salvo em algum lugar?

Não. O sorteio inteiro roda dentro da aba: nenhum número é enviado, gravado em servidor, salvo em cookie ou guardado no seu aparelho. O histórico existe só na memória da página aberta — se você recarregar, fechar a aba ou trocar de aparelho, ele some. Por isso o botão de copiar existe: é ele que transforma o histórico em algo que sobrevive à sessão.

Dá para sortear nomes em vez de números?

Nesta página, não: ela sorteia números, e só. O contorno prático é numerar a lista — 1 para a primeira pessoa, 2 para a segunda e assim por diante — e sortear o número correspondente, que é como as rifas funcionam de qualquer jeito. A vantagem é que a lista com os nomes fica com você e não precisa ser colada em site nenhum.

Qual a diferença entre Math.random e crypto.getRandomValues?

Math.random é rápido e serve para animação, embaralhar uma playlist ou variar um exemplo. Ele é pseudoaleatório: parte de um estado interno e produz uma sequência que, conhecido esse estado, é inteiramente previsível — e a especificação da linguagem nem exige que ele seja imprevisível. crypto.getRandomValues vem do gerador do sistema operacional, é feito para resistir a quem tenta adivinhar o próximo valor e é o que esta página usa. A diferença não aparece num sorteio de brincadeira; aparece quando alguém tem motivo para contestar o resultado.

Dá para sortear sem repetir números?

Dá, e é o comportamento padrão: marcada a opção sem repetição, cada número sai no máximo uma vez no mesmo sorteio — é o que se quer para tirar seis dezenas ou escolher três ganhadores distintos. Com repetição permitida, cada número é sorteado de forma independente e o mesmo pode sair duas vezes, que é como se comporta um dado. Sem repetição você não pode pedir mais números do que o intervalo tem: para tirar 10, o intervalo precisa ter pelo menos 10 números.