----- Original Message ----- From: "Hal E. Fulton" <hal9000 / hypermetrics.com> Now, is there a good name for this function? I was likely misusing the word "biased." ---------------------------- Nope. :) PsychologicalInfiniteShuffle? HumanRandom? It's too much a matter of human expectation, I think. I'm not even sure we have properly formalized the question yet. Are we only trying to avoid repeats, or are we also wanting to discourage more recent choices in favor of more distant ones? Do we want this function to work on all possible inputs? If your input weights are simply {"." => 1, "'" => 1}, which of these is the best answer? - transition matrix: .'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.' - my latest algorithm: .'..'.'.'..'..'..'.'.'...'.''.''....'' - truly random at each step: ''..''..'....'.'''''.'..'''..'''....'' - "skipping and running at the same time": .'..'.''.'..'.''.'..'.''.'..'.''.'..'. We can't name the answer until we ask the question. Chris