Combat is indeed a game of chance. However, the challenge in the game isn't just about calculating everything perfectly; it's about minimizing risks and capitalizing on luck. In this case, if you see that the enemy's luck is 5, try to anticipate something beforehand, at least estimate whether it will work for them now or not, considering how it has worked before.
Here's a specific situation: there's an enemy with a total luck of +1 (for the entire army, as it's a hero parameter). What to do, how to counter it? Constantly expect double damage from every little thing? Then it's easier to just give up.
This is how I personally control randomness. There are units with random abilities. Against them, you can branch out your calculations, anticipating and adapting to possible scenarios. But this isn't true for all units. There are damage ranges. They are not large for everyone. A typical damage range of 1-2 for Warlords is quite stable in practice. There is morale. Everyone has it. But it can be predicted and countered during the battle, after it triggers. Everything fits together. Except for luck.