#Octave, 122 120 bytes
This was horribly long :/ but I can't find a way to make it shorter...
i=0;a='\|/-';while 1;clc;disp(['Loading ',a(1),' ',num2str(mod(i++,101)),' %']);a=a([2:4,1]);pause(0.75*rand()+.001);end
Circulating a
, a=a([2:4,1])
was flawr's idea here.
I had to start at i=100
instead of 0
or 1
, because the counter had to start at 0
.