The accuracy of moves makes the battle random. Paralysis, burn and freeze too. And critical hits. Random is an important part of the game. It's a parameter to take into account and makes the game more interesting as you can simply follow a perfect plan, you need do adapt to the unforeseen
That reminds me a random battle on showdown. I had only one pokemon left, my opponent maybe several. He had a mega Altaria, boosted with one or two Cotton Dance, I had a mega Salamence, both partially weakened. His mega Altaria could kill me with a single Hyper Voice, while an Aerilated Return would have done almost nothing to his Altaria. I was already saying gg, because even if I was playing to the end to my mind the game was over. The guy replied me I should never give up... Then the turn starts. My mega Salamence obviously attack first. Critical hit, boosted STAB Aerilated Return ignoring his huge defense boost. Mega Altaria fainted. Then I got rid of his last pokemons. I won the battle I was sure to lose.
Random things like confusion can sometimes be frustrating, but generally it makes the game more interesting, because even if you're far disadvantaged, as long as you have one pokemon alive there's still hope