Why don't you write a "ь" at the end of the word, as you do when you write eighteen (for example) ? Thanks for the answer.
«Ь» is not just left out, it's not pronounced: «м» in «вісім» is pronounced as hard consonant.
You might be comparing this with Russian «восемь», that's how you know it had a «ь», right? Ukrainian doesn't have some soft consonants than Russian has. There's simply no such thing as «мь». «М» can get semi-soft in certain positions (e.g. before «і» in «мі́сто» 'city'), but it is never soft on its own, like in Russian. «Мь» just doesn't existin in Ukrainian, period. The same is true for other labial consonants: «пь», «бь», «фь» don't exist in Ukrainian.
However, soft «т» does exist, and that's why we have it at the end of «вісімна́дцять».