I'm too lazy to do the math so I ran a simulation instead.
With groups of size 8000, if the vaccine is ineffective, and if the probability of a subject becoming infected is (51+74)/2/8000=0.0078125, then the probability of getting >=23 FEWER infections in the vaccine group is around 2%. I suspect this is low enough for a drug trial to be generally considered a success, but yes it could certainly happen by chance. It's not a proof, it's a trial.
MTRand rng(1);
unsigned count = 0;
double prob = 0.0078125;
for(unsigned itr=0; itr<100000; itr++){
int c1 = 0;
int c2 = 0;
for(unsigned i=0; i<8000; i++){
if(rng.rand()<prob){
c1++;
}
if(rng.rand()<prob){
c2++;
}
}
if(c1-c2>=23){
count++;
}
}
printf("count: %u = %.6f\n", count, (double)count/100000);