Randomize the test
Pyth - 48 42 41 39 bytes
Will packed string.
js.Sm++hd/D"None of the above".Stdkc.zk
Try it online here.
JavaScript ES6, 170 bytes
Is an anonymous function, name it. Note: this uses the random sort method, which isn't entirely random, but is sufficient, provided you aren't a probability teacher.
t=>t.split`
`.map(x=>(x=x.split`
`,R=[],(k=x.pop())==" None of the above"?(R=[k]):x.push(k),[x.shift(),...x.sort(r=_=>.5-Math.random()),...R].join`
`)).sort(r).join`
`
With the bonus, 180.75 bytes
t=>t.split`
`.map(x=>(x=x.split`
`,R=[],(k=x.pop())==" None of the above"?(R=[k]):x.push(k),[x.shift(),...x.sort(r=_=>.5-Math.random()),...R].map((k,i)=>(i?` ${" ABCD"[i]}. `:"")+k.trim()).join`
`),a=0).sort(r).map(e=>++a+". "+e).join`
`
Test it out!
F=t=>t.split`
`.map(x=>(x=x.split`
`,R=[],(k=x.pop())==" None of the above"?(R=[k]):x.push(k),[x.shift(),...x.sort(r=_=>.5-Math.random()),...R].join`
`)).sort(r).join`
`;
g.onclick=function(){o.innerHTML = ""; o.appendChild(document.createTextNode(F(i.value)));}
g.click();
textarea{width:100%;height:14em;}textarea,div,button{font-family:Consolas,monospace;white-space:pre;}
<textarea id=i>When was the War of 1812?
1812.5
1776
1812
1821
What is the capital of France?
46
F
Nice
None of the above
What is the square root of -1 (simplified)?
i
i don't know
square root of -1
wait this is a math test?</textarea><button id=g>go →</button><div id=o></div>
CJam, 54 53 55 52 bytes
Saved 1 byte from using a later release (avaliable on TIO). Gained 2 bytes because I forgot to randomize order of questions. Saved 2 bytes from yet another bug fixed on TIO.
qNN+/mr{N/(\mr_" None of the above"#3e\N*N\++}%NN+*
Try it online!