That's fine and dandy and all, but won't help if you attack with 5 units at 80% in 2000BC and lose all battles.
I've also read that the random function used in the game isn't the best, and has a tendency to give several unlikely wins or losses in a row.
Well, let's not rely on "I've read somewhere" when we can test it.
Here's your typical classical era battlefield. 8 stacks of 125 C1 Vultures surrounding a city with 0% cultural defenses, defended by 1000 unpromoted swordsmen:
Units where chosen to get close to your mentioned 80% odds, each Vulture will have 79.65% odds to win the battle:
I do 8 stack attacks and find that after these battles 787 Vultures are still standing, so I won 78.7% of the battles. Close enough to the mentioned 79.65%:
The game has new random seed on reload checked, so I repeat the process 2 more times, 2nd time I win 78.4% of the battles, 3rd time I win 80.0% of the battles. (Actually there was also in between a round where I won 80.9% of the battles, but forgot to turn on BUFFY logging, so I didn't get the data saved for the next part. That run is therefore excluded.)
That's 3000 battles at 79.65% odds. Now, with 20.35% of losing, the chance of losing 3 consecutive battles should be 0.843% or 1/119, the chance of losing 4 consecutive battles is 0.1715% or 1/583 and the chance of losing 5 consecutive battles is 0.0349% or 1/2865.
If I pick any random series of 4 consecutive battles, there should be 1/583 chance they are all losses, and so on. I have data on 3000 battles, which contains 2998 different series of 3 consecutive battles, 2997 series of 4 consecutive battles and 2996 series of 5 consecutive battles. So what we expect to find is:
3 losses in a row should occur 2998/119 = 25.2 times
4 losses in a row should occur 2997/583 = 5.1 times
5 losses in a row should occur 2996/2865 = 1 time
I open up the BUFFY logs, use find and replace to make them more easily readable and have a look at the results. The actual results:
5 consecutive losses happened 1 time
4 consecutive losses happened 5 times
3 consecutive losses happened 15 times
At this point we should note that any series of 5 losses also counts as 2 series of 4 losses and 3 series of 3 losses, and any separate series of 4 losses counts as 2 series of 3 losses. So the real results are:
5 consecutive losses: 1 time (expected 1)
4 consecutive losses: 7 times (expected 5)
3 consecutive losses: 28 times (expected 25)
Slightly above expectation, but most certainly not "a tendency to give several unlikely wins or losses in a row". The results varied a lot between the 3 different series, as expected. If I did another 3000 I would also get different numbers, possibly below expectation that time. The sample size is still too small to rule out the possibility that there could be some degree of bias in any direction or the other in the long run, but if there is one, it is so small that in practice it has no effect.
Now can we please lay this "the RNG is horrible"-talk to rest once and for all. Losing streaks happen, as they should. And if you want to play the most efficient possible game and build only the amount of units you expect to need, this will bite you in the behind every now and then. If you keep all your eggs in one basket and play lots of "win the battle or abandon game"-situations, then expect to abandon games every now and then.
Here is the (long) list of battles in the order they happened. 1 = win, any other number = strength of surviving defender. You will see some long streaks of nothing but victories and some areas where losses are a lot more frequent. But this is exactly what you should expect from a RNG. A list where 4 wins is always followed by 1 loss would have absolutely nothing to do with randomness.