Revise shuffle strategy to pre-compute the playback order

Fixes #647
1 job for !1034 with new-shuffle-algo in 3 minutes and 48 seconds (queued for 5 seconds)
detached
Status Job ID Name Coverage
  Build
passed continuous-app-build #713100
docker amd64

00:03:48