Optimization for shuffle

dig it or will this have issues with strings in legacy ie?
kept index because tests failed with `random(0, length)`