What you want to do is set whichever Hero is chosen to be equal to the last Hero in the Array. Then you reduce the Array Size by 1.
For example:
Hero[1] = Archmage
Hero[2] = Mountain King
Hero[3] = Paladin
Hero[4] = Blood Mage
ArrayTotal = 4
Then let's say Hero[2] is chosen which is the Mountain King:
First you Set Hero[2] = Hero[ArrayTotal]
Then you subtract 1 from ArrayTotal --> ArrayTotal = ArrayTotal - 1
Now the Array looks like this:
Hero[1] = Archmage
Hero[2] = Blood Mage
Hero[3] = Paladin
ArrayTotal = 3
So the Mountain King was chosen and pushed out of the Array.
Finally you need to adjust your trigger so that it picks a random number from 1 to ArrayTotal instead of 1 to 41.
Also, you're setting HeroChosenLast before you create the Hero. This should be Set AFTER you create the Hero, otherwise it won't be set to anything.