Toxicity is rampant because Riot doesn't allow a way for players to release game caused stress
A lot of things happen in the game which are uncontrollable by most players in the match, typically it's down to one or two players (the opponent and the team mate that fed/trolled) which then results with those affects negatively and directly affecting other players, in which they had no control of, and more often or not, due to the game being a snowballing game, these games impact that player massively for the rest of the game, with the degree in which they affect the player ramping up each time they negatively affect a player (think of a 1 on a loop but each time it loops it adds a +1 and the 1 standing for FUCK ME).
Riot has no way to combat this stress caused, the response is "suck it up and bucker up pal" but if you remember the loop is 1n+1 so it only gets worse as it happens. The easiest way to go away from stress is to leave it, in fact this is riots response for toxicity in chat, leave it (/mute all), but obviously you can't do this against a fed enemy you had no control of feeding. And when you actually leave, you get slapped with a penalty, and eventually a ban. If you're one of the 99% of people that get stressed out, if you keep playing League forever, you'll get banned eventually as no one can ignore that amount of built up stress without being toxic.
The second easiest way is to vent it out, which comes in form of planting the blame on someone else, and in these cases, the person who caused you this suffering. Which obviously comes with a ban.
If you want to ban people for being toxic, don't ban them for stopping themselves from being toxic. Or better yet, actually make a way that players can alleviate stress (better yet make the game anti-snowball and this shit won't happen as much)