My shuffle sort method from Chris Pine, Ch 10.  It's long and ugly, but it works!