How to make the damage inflicted to the enemy and the main character more unpredictable

I am developing a small mobile game. The enemy can damage my player by throwing objects at his side, and the player can damage the enemy by hitting him with a bat.

For the moment, I am calculating the damage that was caused by the player or the enemy in a very simple way. For example, my enemy has 100% of health. When the player hits him with a bat, the enemy is losing 10% of his health. So after 10 hits the enemy is “dead”.

But this is not interesting. The game process is very simple and predictable: you are moving, see the enemy, hit him 10 times, and the move to the next enemy. When the enemy hits the player,the player loses 10% of his health. That is not cool (the game process is very static).

An alternative, is to use random integer values to calculate damage values. Can anyone give an idea, how to make damage process more interactive and unpredictable, and how to make proportional link between player health and enemy health and the damage.

int damage = Randon.Range(1,10);