I think it maybe not a big problem in BTS, because only use one time random No. to make sure the turn in next round per 101 blocks, but it maybe become key point in lottery if this dac want to play per block .
I have some ways
1). before beginning of new round , produce delegate turn in the new round using old methods ,
2).check the min delegate interval between previous round and next round ,if the delegate interval is small than a constant no, I call N , then replace the place with max delegate interval
I think if the N is not a big No. it would convergence rapidly
N is the delegate interval we can set
1).divide the 101 delegates to two groups Acc. to previous round turn , A group from 1-67, B group from 68-101,
2).select 33 delegates from A group by random and join them to B group
3). sort delegate turn A group by random ,and make it as 1-34 turn in new round , also sort delegate turn B group by random and make it as 35-101 turn .
if delegate want to attack the maybe need to control 33 delegates
1).delegate have to publish two hash of secret random , one is for next round ,and other is for next next round , when he first create a block .
2).delegate reveal the secret random ( its hash had been publish in previous previous round by him ) and publish a hash of secret random that would been reveal in next next round .
the min interval between one delegate publish the hash of secret random and reveal the secret is larger than 101 block ( all delegate)
so maybe he cannot attack as follow
A-2 | XXXXA-1 | A0
when the time is at A0, the hash of secret random that the delegate reveal was published in A-2 ( mean previous two round). so though in the A-1 A can know what turn he in next round , but he cannot change the secret random that its hash was was published in previous two round