Add support for progress printing and randomization