Estou fazendo um jogo que apresenta vários tipos diferentes de quebra-cabeças em sequência. Eu escolho cada quebra-cabeça com um número pseudo-aleatório. Para cada quebra-cabeça, há várias variações. Eu escolhi a variação com outro número pseudoaleatório. E assim por diante.
A questão é que, embora isso produza aleatoriedade quase verdadeira, não é isso que o jogador realmente deseja. O jogador normalmente quer o que eles percebem ser e se identifica como aleatório, mas apenas se não tender a repetir quebra-cabeças. Então, não é realmente aleatório. Apenas imprevisível.
Pensando bem, posso imaginar maneiras erradas de fazê-lo. Por exemplo, eliminar temporariamente as N opções mais recentes do conjunto de possibilidades ao selecionar uma nova opção. Ou atribuindo a cada escolha uma probabilidade igual, reduzindo a probabilidade de uma opção a zero na seleção e aumentando todas as probabilidades lentamente a cada seleção.
Suponho que exista uma maneira estabelecida de fazer isso, mas simplesmente não conheço a terminologia, portanto não consigo encontrá-la. Ninguem sabe? Ou alguém resolveu isso de uma maneira agradável?