in reply to Shuffle flat file

What do you mean by a shuffle 'based on the first field'? I'd think in terms of shuffling whole records, and a random ordering doesn't usually depend on values.

Given the file size you mention, slurping to an array and hitting it with Fisher-Yates sounds like the right way to do it. What goes wrong with your attempt?

After Compline,
Zaxo