Try improve DList.shuffle for collisions #245

Pull with caution, as I'm not sure how `util.Random.shuffle` will play with the single-pass iterator. If you run the unit tests on the cluster mode, it should fail if it doesn't work though xD