Número De Pessoas Aleatórias - Número De Pessoas Aleatórias - FDPLEARN
Número De Pessoas Aleatórias - FDPLEARN

Gerar um número de pessoas aleatórias é mais complicado do que parece

A maioria das pessoas procura uma ferramenta simples e encontra geradores online que sorteam nomes de uma lista que você mesmo cola. Isso funciona para festas ou sorteios escolares, mas se você precisa de algo com alguma rigorosidade — seja para amostragem estatística, testes A/B, ou distribuição de recursos — os resultados ficam rapidamente distorcidos. O problema não é o sorteador em si. É o que vem antes e depois dele.

O que realmente define número de pessoas aleatórias

Não existe um número único que resolva tudo. O que determina a qualidade do resultado são três variáveis: o tamanho da população base, o método de seleção e a aleatoriedade do gerador. População base significa tudo aquilo que está dentro do grupo que você considera elegível. Se você quer escolher 50 pessoas para um teste de produto e só tem a lista de clientes que já compraram, seu universo já está enviesado desde o início. Métodos de seleção variam de amostragem simples aleatória para estratificada, e geradores podem ser pseudorandômicos ou verdadeiramente randômicos. A diferença prática é enorme. Geradores pseudorandômicos, como o padrão do PHP com mt_rand() ou o Math.random() do JavaScript, usam sementes determinísticas. Eles parecem aleatórios, mas alguém que conheça a semente pode prever a sequência. Para sorteios de marketing isso não importa. Para pesquisa clínica ou testes cegos, importa demais. Geradores baseados em fontes de entropia do sistema, como /dev/urandom no Linux ou a API crypto.getRandomValues() do navegador, são outra coisa completamente diferente. Custam um pouco mais em processamento e não são acessíveis em todos os ambientes, mas eliminam o viés previsível.

Como configurar na prática

Vou descrever o que eu faria se tivesse que rodar isso hoje sem depender de serviço externo. O cenário mais comum é ter uma planilha com dados de pessoas e precisar extrair uma amostra que represente a população dentro de margens aceitáveis. Passo 1: defina o universo com clareza. Anote exatamente quais critérios fazem alguém entrar ou sair da lista. Idade, região, tipo de cadastro, data de inscrição. Sem isso, qualquer número que sair do gerador será questionável. Eu já vi um time de produto usar uma lista de usuários ativos nos últimos 30 dias para testar uma feature voltada para iniciantes. O resultado foi inútil porque os selecionados eram justamente os mais engajados, que não representavam ninguém no grupo-alvo.

Passo 2: escolha o método de amostragem. Se a população for homogênea, amostragem simples aleatória basta. Se houver subgrupos relevantes — gênero, faixa etária, nível de uso —, use amostragem estratificada. Ela garante que cada subgroupue esteja presente na proporção certa. Existe também a amostragem por conglomerados, útil quando você não tem acesso a uma lista individual completa e precisa sortear regiões inteiras primeiro. E a sistemática, onde você sorteia um ponto inicial e pega cada nth elemento. É rápida, mas perigosa se houver padrão oculto na ordem dos registros. Passo 3: implemente com fonte de entropia adequada. Um script Python simples com random.seed() é rápido mas previsível. Substitua por random.SystemRandom(), que usa as mesmas fontes do sistema operacional. Se estiver no navegador, crypto.getRandomValues() é a opção correta. Não use Math.random(). Em Node.js, o módulo crypto do core já expõe funções dedicadas. Escolha a que estiver disponível no seu ambiente e pare de improvisar.

Passo 4: valide o resultado. Gere a amostra e compare as distribuições com a população original. Se você stratificou por gênero e a amostra saiu com 70% de um gênero quando a população é 50/50, algo falhou. Verificações manuais assim costumam levar cinco minutos e salvam horas de retrabalho.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Número de pessoas aleatórias: ajustes finos que ninguém conta

O tamanho da amostra depende do que você quer medir. Regra prática ruim é usar 10% da população sem olhar nada além disso. A fórmula de Cochran para populações infinitas ou muito grandes é n = Z² × p × (1-p) / e², onde Z é o nível de confiança (1,96 para 95%), p é a proporção esperada (0,5 se você não sabe, porque maximiza o tamanho) e e é a margem de erro desejada. Para 95% de confiança e 5% de margem, o resultado é cerca de 385, independente de a população ser 10 mil ou 10 milhões. Se a população for finita e pequena, aplica-se o fator de correção: n_adj = n / (1 + (n-1)/N). Isso reduz o tamanho necessário de forma mensurável. Outro detalhe prático: duplicatas. Se você está sorteando substitutos ou redistribuindo listas, garantir que uma pessoa não apareça duas vezes exige verificação explícita. Set Pythonico ou hash table resolve em tempo constante por verificação. Fazer isso manualmente em planilha com PROCURA é pedir para errar quando a lista cresce acima de mil linhas.

Um caso que eu enfrentei diretamente: precisei sortear 200 pessoas de uma base de 12 milcadastros para um teste de usabilidade, mas o critério era que nenhuma pessoa do mesmo CEP pudesse estar no grupo de controle e no grupo experimental ao mesmo tempo. A solução foi criar dois vetores separados por CEP, sortear dentro de cada CEP usando SystemRandom, e depois cruzar os resultados para garantir disjointness. Levei cerca de vinte minutos para escrever o script, que rodou em menos de dois segundos. Antes disso, tentei fazer no Excel com filtros manuais e gastei três horas sem chegar a lugar nenhum.

Pegadinhas comuns e quando desistir da abordagem

A armadilha mais frequente é confundir aleatoriedade com representatividade. Um sorteio truly random pode muito bem produzir uma amostra terrivelmente desbalanceada, especialmente com tamanhos pequenos. Se você sortear 30 pessoas de uma população com 60% mulheres e 40% homens, é perfeitamente possível sair uma amostra com 22 mulheres e 8 homens por pura variância. Estratificação resolve isso. Não pule essa etapa achando que randomização pura é suficiente. Outra pegadinha é tratar geradores online como caixa-preta confiável. Muitos sites de sorteador usam seed fixa ou algorimos visíveis. Se o resultado tem implicações reais — pagamento, acesso a tratamento, seleção para vaga —, audite o gerador ou use código próprio. Confiança cega aqui custa caro.

Existem situações em que nenhum gerador de número de pessoas aleatórias resolve o problema. Se a população é dinámica e muitos registros mudam durante o processo de amostragem, a janela de validade do seu sample cai rapidamente. Nesse caso, amostragem em tempo real com validação imediata, integrando direto ao banco de dados, é mais seguro do que exportar uma lista e sortear depois. Também não adianta insistir em estratificação quando as subclasses são extremamente pequenas. Estratificar um grupo de 15 pessoas por quatro dimensões diferentes só gera células vazias e frustração. Ameaça isso e use amostragem simples com registro transparente do que foi feito.

Alternativas quando o cenário aperta

Se você não tem acesso a um ambiente com crypto seguro, bibliotecas como NaCl ou libsodium oferecem geradores criptograficamente fortes portáteis. Se o volume é baixo e o risco também, uma tabela de permutação pré-computada com shuffle Fisher-Yates usando semente extraída de /dev/urandom via bridge de execução é suficiente. Se a necessidade é recorrente e institucional, considere ferramentas como SurveyMonkey Sampling, Qualtrics Randomizer, ou até scripts próprios versionados em repositório com logs de seed e data de geração. Documentar a seed permite replicação exata depois, o que é essencial para auditoria. O que eu recomendo na maior parte dos casos é abandonar a dependência de ferramentas online genéricas e ter um pequeno utilitário local. Um script Python de cem linhas com argumentos de linha de comando para população, tamanho, método e saída em CSV roda em segundos, gera logs, e você pode auditorá-lo. O investimento inicial de meia hora paga-se na primeira vez que um colega de trabalho perguntar qual foi a seed do sorteio que você fez há três meses.

Resumo sem florências: defina população com critério explícito, escolha amostragem adequada ao desenho do estudo, use gerador com entropia real, valide distribuições, estratifique quando houver subgrupos relevantes, edocumente seeds. O resto é ajuste fino.