Trabalhando com números aleatórios em Python usando a biblioteca random

A geração de números aleatórios é extremamente utilizada em programação.

Ela aparece em:

  • jogos;
  • simulações;
  • sorteios;
  • inteligência artificial;
  • testes;
  • criptografia;
  • automação.

No Python, uma das formas mais simples de trabalhar com aleatoriedade é utilizando a biblioteca random.

Neste artigo vamos explorar:

  • como funciona o módulo random;
  • principais funções;
  • exemplos práticos;
  • aplicações comuns.

O que é a biblioteca random?

A biblioteca random é um módulo nativo do Python responsável por gerar valores pseudoaleatórios.

Ela já vem instalada por padrão.


Importando o módulo

Exemplo

import random

O que são números pseudoaleatórios?

Computadores normalmente não geram números verdadeiramente aleatórios.

Os valores são produzidos através de algoritmos matemáticos.

Por isso, o termo correto costuma ser:

Pseudoaleatório

Fluxo simplificado

flowchart LR
    Seed[Seed]
    Algoritmo[Algoritmo]
    Numero[Numero Gerado]

    Seed --> Algoritmo
    Algoritmo --> Numero

Gerando números inteiros

Uma das funções mais utilizadas é randint().

Exemplo

import random

numero = random.randint(1, 10)

print(numero)

Como funciona randint?

A função gera um número inteiro dentro de um intervalo.

Estrutura

random.randint(inicio, fim)

Exemplo prático

random.randint(1, 100)

Pode gerar:

15
82
47

Gerando números decimais

Também podemos gerar números de ponto flutuante.

Exemplo

random.random()

Resultado esperado

0.73452

A função retorna um número entre:

0.0 e 1.0

Trabalhando com intervalos decimais

Exemplo

random.uniform(1, 10)

Escolhendo elementos aleatórios

Outra funcionalidade muito útil é selecionar elementos de listas.

Exemplo

nomes = ['Ana', 'Carlos', 'Maria']

print(random.choice(nomes))

Fluxo de escolha aleatória

flowchart LR
    Lista[Lista]
    Choice[random.choice]
    Resultado[Elemento Escolhido]

    Lista --> Choice
    Choice --> Resultado

Embaralhando listas

Também podemos embaralhar elementos.

Exemplo

cartas = [1,2,3,4,5]

random.shuffle(cartas)

Antes e depois

AntesDepois
[1,2,3,4,5][3,1,5,2,4]

Selecionando múltiplos valores

Exemplo

numeros = [1,2,3,4,5]

random.sample(numeros, 2)

Resultado esperado

[2,5]

Sorteios simples

A biblioteca random é muito utilizada em sorteios.

Exemplo

participantes = ['Ana', 'Carlos', 'João']

vencedor = random.choice(participantes)

print(vencedor)

Simulações

Números aleatórios também são utilizados em simulações.

Exemplo de dado

dado = random.randint(1, 6)

Fluxo de simulação

flowchart TD
    Evento[Evento]
    Random[Aleatoriedade]
    Resultado[Resultado]

    Evento --> Random
    Random --> Resultado

Jogos e aleatoriedade

Grande parte dos jogos depende de números aleatórios.

Exemplos

  • cartas;
  • inimigos;
  • mapas;
  • loot;
  • eventos;
  • posições.

Exemplo: jogo da adivinhação

Um uso clássico é em jogos da adivinhação.

Exemplo

numero_secreto = random.randint(1, 100)

Nesse caso, o jogador precisa descobrir o valor gerado.


Seeds

A função seed() permite controlar a geração pseudoaleatória.

Exemplo

random.seed(10)

Por que usar seed?

Seeds ajudam a reproduzir resultados.

Isso é útil em:

  • testes;
  • simulações;
  • debugging;
  • machine learning.

Exemplo reproduzível

random.seed(1)

print(random.randint(1, 10))

Executando novamente, o resultado será o mesmo.


Segurança e random

A biblioteca random não é recomendada para aplicações criptográficas.

Para segurança, Python possui o módulo:

secrets

random vs secrets

BibliotecaObjetivo
randomJogos e simulações
secretsSegurança e criptografia

Exemplo com secrets

import secrets

numero = secrets.randbelow(10)

Aplicações práticas

A biblioteca random pode ser utilizada em:

  • jogos;
  • sistemas de sorteio;
  • testes automatizados;
  • IA;
  • simulações;
  • embaralhamento de dados.

Conceitos importantes aprendidos

Mesmo uma biblioteca simples ajuda bastante no aprendizado de:

  • geração de dados;
  • lógica de programação;
  • manipulação de listas;
  • estruturas de controle;
  • simulações.

Conclusão

A biblioteca random é uma das ferramentas mais simples e úteis do Python.

Mesmo sendo pequena, ela possui aplicações extremamente importantes em:

  • jogos;
  • automação;
  • testes;
  • simulações.

Além disso, é uma ótima biblioteca para iniciantes praticarem lógica de programação e experimentarem conceitos de aleatoriedade.

Com o tempo, conceitos simples como geração de números aleatórios podem evoluir para aplicações muito mais complexas envolvendo inteligência artificial, estatística e ciência de dados.


Referências