Eu suponho que você possa colocar as mãos em uma bolsa pequena e um monte de contas idênticas.
Pegue as contas 20 e escreva os números de 1 a 20. Coloque-os no saco e (opcionalmente) escreva "d20" nele. Para simular um rolo d20, basta sacudir a sacola e puxar uma conta sem olhar. Em seguida, coloque a conta de volta na sacola para o próximo "rolo".
Isto é basicamente o quão tradicional loterias trabalhou. Em uma pitada, se você não tiver contas adequadas disponíveis, poderá substituir tiras de papel e a bolsa poderá ser substituída por qualquer recipiente, como um pote ou até um chapéu, dependendo do que estiver disponível. Mas contas em uma bolsa funcionam muito bem.
Este método generaliza de maneira óbvia para qualquer tamanho de matriz. Com contas suficientes, você pode até simular um d100 com uma única bolsa, embora o uso de duas bolsas com contas 10 em cada uma possa ser mais conveniente (assim como os rolos d100 geralmente são simulados com dois rolos d10). Você pode até manipular dados ocasionais de tamanho estranho removendo temporariamente algumas contas de uma sacola maior (ou apenas jogando-as de volta se você as puxar para fora).
Para jogos que exigem um grande número de dados pequenos (por exemplo, Nd6), você pode fazer uma única sacola com, por exemplo, contas 60, cada uma numerada de 10 de 1 a 6. Desenhando N contas de tal saco não é bastante equivalente a rolar Nd6 (obter muitas contas com o mesmo número é um pouco menos provável do que com os dados; quanto mais, maior o número que você recebe em comparação com o número de contas na bolsa), mas é bem próximo para muitos propósitos.
Um método semelhante também pode ser implementado com um baralho de cartas, como sugerido por Tridus, que é embaralhado entre empates. Novamente, se várias cartas forem retiradas do baralho entre as baralhamento, a distribuição não corresponderá perfeitamente à das jogadas independentes, mas se o baralho contiver muitas cópias de cada carta, poderá estar perto.
Outros truques para simular "dados engraçados":
Um d12 pode ser simulado com um d6 comum e uma moeda: basta rolar o dado e virar a moeda, e adicione 6 ao rolo de dado se a moeda aparecer cara.
Um d4 pode ser simulado com duas moedas diferentes, uma vale no ponto 1 se aparecer cara e a outra vale no ponto 2. Isso fornece um número de 0 a 3; para um rolo d4 padrão, adicione um.
Um d8 pode ser simulado como um d4 acima, mas com a adição de uma terceira moeda no valor de pontos 4.
-
Para simular um d10, você pode rolar um d12 (por qualquer método) e rolar novamente todos os rolos do 11 ou 12. Ou, se preferir, subtraia o 2 do rolo do d12 e role novamente todos os rolos que ficariam abaixo do 1.
Como alternativa, role um d6, rolando novamente todos os 6s. Em seguida, jogue uma moeda e adicione 5 se ela aparecer na cara.
O mesmo método pode ser usado para simular um d20 com um d6 e duas moedas (distintas): role o d6, relance todos os 6s, depois jogue as moedas e adicione 5 se o primeiro aparecer, e 10 se o segundo vem à tona.
As Sardathrion sugere em sua resposta, um relógio também pode ser usado para simular rolagens. Observar o ponteiro dos segundos fornece um número vagamente aleatório, de 0 a 59; desse número, você pode pegar o restante do módulo 20, 12, 10, 6 ou 4 (todos os quais dividem o 60 uniformemente) e adicionar um para obter um rolo simulado de d20 / d12 / d10 / d6 / d4.
(Tomando o módulo restante 8 quase fornece um rolo d8, mas é um pouco tendencioso. Resista à tentação de simplesmente largar o último dígito para um teste do d6; enquanto isso funcionar, os resultados serão muito menos aleatórios do que se você seguir o módulo 6 restante.)
Isso pode ser particularmente útil, por exemplo, ao jogar em um carro ou ônibus, onde os dados seriam difíceis e até cartões ou sacolas de loteria podem ser inconvenientes. A desvantagem é que os números "aleatórios" gerados dessa maneira realmente não são tão aleatórios; em particular, esse método funciona especialmente mal para rolar vários dados em sequência.
Se você tiver acesso a um cronômetro que mostra frações de segundo, esse método se tornará muito mais prático. Basta iniciar o cronômetro e deixá-lo funcionar por alguns segundos antes de parar e observar o último dígito (s). Você pode facilmente gerar muito bons d10, d20 ou até d100 dessa maneira, se o seu cronômetro tiver precisão suficiente; outros tamanhos de matriz podem ser manipulados iniciando-se com um rolo d10 ou d20 e rolando novamente qualquer número que esteja fora do intervalo.
(De fato, é exatamente assim que simples "rolo de dados eletrônicos"os circuitos funcionam: eles incrementam um contador digital, digamos, 1000 vezes por segundo, e mostram seu valor atual - modulo o número de lados no dado escolhido - quando você pressiona um botão. Como você não pode cronometrar o botão, pressione até um milissegundo , o valor exibido é efetivamente aleatório.)