Let both the state and private firms compete for these vouchers by providing schools.
Schools can select by ability if they wish.
Let's add a further feature to this system - the value of the voucher is not fixed, but is dependent on the socio-economic intake of the school. The more middle class and well-off the parents are, on average, the less the voucher is worth. The more impoverished they are, the more its worth.
This last feature deals with the effect of people moving to the vicinity of highly middle class schools to get their kids in. That school would now receive less funding than the school with working class kids down the road. Take your voucher to that other school, and it's worth more. And so are the vouchers of the other kids at that school.
The precise difference in voucher value can be fine-tuned over time, to cancel out the effect of the middle-classes gaining an advantage by moving nearer to middle-class dominated schools. (In fact, by increasing the difference, we could ensure that they actually tend to flee from them.)
Incentive to run a good school? Private companies will extract their profit from the vouchers, competing with each other by two means - providing better schools so as to attract more pupils (so they grow) and by efficiency - the more efficient they are at providing quality education, the more of the voucher they can take in profit. But take too much in profit and standards will drop and parents will chose to send their kids elsewhere. So we have a healthy marketplace, if you like that sort of thing.
My guess, incidentally, is the state schools will drive the private schools out of business. But let's put it to the test!