Existing DPOS chains select a set of unlikely to collude entities by approval voting and then schedule them in a pseudorandom order. This shuffling is not really needed because once each of them participates a single block a 2/3+ consensus can be determined. This is why EOS will be removing the random shuffle all together.
How will EOS determine the order of the block producers? If the order is not pseudorandom can this be exploited in some way?
As I am interested in the issue of determining the order of the block producers in EOS, today I read from their whitepaper( https://github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper.md )
"The top 20 by total approval are automatically chosen every round and the last producer is chosen proportional to their number of votes relative to other producers. The selected producers are shuffled using a pseudorandom number derived from the block time. This shuffling is done to ensure that all producers maintain balanced connectivity to all other producers."
According to my understanding of the quote, the producers will be shuffled. The whitepaper was updated 4 months ago, though. @dan (or anybody of good will), could you please clarify the issue?
See the "Removing block producer schedule shuffling" section in the most recent eos.io development update