Using a Feistel Network for full-cycle permutation : nice algorithm. requires that the permuted set's size be a power of 2 however - although for smaller sets you can just skip to the next output value, since they're not going to repeat
(tags: feistel-network full-cycle permutation shuffling algorithms)algorithm - Generating shuffled range using a PRNG rather than shuffling - Stack Overflow : some reasonably good answers on using an LFSR or LCG to generate a full-cycle permutation with no repeats
(tags: lfsr lcg algorithms permutation shuffling)