Encryption is reversible, hence an encryption is a one-to-one mapping from a set onto itself.
Pick a block cypher with a large enough block size to cover the number of items you have.
Encrypt the numbers 0, 1, 2, 3, 4, ... This will give you a non-repeating ordered list of numbers up to 2^(block size).
If the encrypted number is too large, ignore it. If the encrypted number is within the size of your item list, then pick that item. Repeat for however many items you need.
A cypher with variable block-size (like the Hasty Pudding cypher) will reduce the number of misses.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…