Aqui estão técnicas aleatórias, mas não completamente aleatórias que eu uso.
1) Shuffle bag. Coloque todos os resultados válidos em uma bolsa, escolha um aleatoriamente e remova-o da bolsa. Repita até que a bolsa esteja vazia e encha novamente. Para adicionar aleatoriamente, reabasteça a bolsa quando houver apenas X itens restantes.
2) porcentagens progressivas. Primeira jogada X% de chance, se falhar, a segunda jogada é X + Y%, X + 2Y% etc. Redefina para X% com sucesso. Tanto o valor inicial quanto a progressão podem ser ajustados (mesmo não lineares).
3) recargas internas. Role X e chance, se for bem-sucedido, não role pelos próximos N segundos ou M tentativas ou o que for. Pode ser combinado com outros métodos. Para adicionar mais aleatoriedade, faça várias verificações de eventos com diferentes sugestões, ou seja, faça 2 jogadas a 25% com recargas internas de 3 e 7 segundos, em oposição a 1 rolagem com 50% com um 5s icd (não exatamente a mesma probabilidade, mas você pode calcular e combine se for importante).
4) Espaçamento pré-laminado. Em vez de verificar vs um por cento de cada evento, basta escolher quando os eventos acontecem. Por exemplo, "esse chefe critica todos os ataques 1d4 + 4". Funciona bem quando você quer que algo aconteça de forma relativamente consistente e um tanto aleatória, mas você não deseja que os eventos retornem. De alguma maneira, um caso especial dos métodos (2) mais (3). Novamente, para mais aleatoriedade, você pode ter 2 ou mais seqüências sobrepostas.