Is there any known algorithm that can generate a shuffled range [0..n) in linear time and constant space (when output produced iteratively), given an arbitrary seed value?>
See my article on secure permutations with block ciphers for one way to do it.