When using the increment work generator, each new chain is the sucessor of the previous chain. This also means that chain start values only differ by a few bits. The randomizer fills those bits that are not used to store the chain number with pseudorandom noise. The chain index can be extracted from the produced start value by concatenating as many of the even nibbles as are necessary to represent the largest counter value. The odd nibbles and the most significant even nibbles that are not needed for the index are then filled with a pseudorandom number that is defined by the chain index. The noise should be fast to produce and a few xors and bit shifts should be enough.

simple

the first round function value is xored with the start value index. This does not introduce any more entropy and is used for testing purposes only. The original index can be obtained by the same xor operation.

shiftxor1

xor the first round function value or its complement with the index at a few different bit offsets. The original start value index can be obtained from the even nibbles.