It's simply bit-scrambling. The results have the same number of bits set as the values 0 to 15 do, it's just that they are different bits. All you need to do is to swap the bits around.