If randomness bothers you, how about 5d4? You only auto fail if you roll all 1's, you only critically succeed if you roll all fours. The actual "could theoretically succeed" range is now 5-19, or 15 numbers instead of the current 18. You have an average result of 12.5 which should, given a reasonably good bonus, succeed at most tasks. Extreme results still exist, but are now incredibly rare moments, so they can be given more weight when they do occur, from the catastrophic to the miraculous.
I prefer 4d6-4, range 0-20, avg. 10, odds of 20 or 0 are just 1 in 1,296.
I actually bought a lot of d6's with 0 instead of 6, so you get 0 - 20 as each die is 0-5.
Back in the dim and distant past, I pondered a system that was based on 3d20, take the middle. Crit success was a nat 20 and 2 successes; crit fail was a nat 1 and 2 failure. Two nat 20s was an autosuccess; three was an auto crit success. Two nat 1s was an autofail; three was an auto crit failure. I never got a chance to try it at the table, but it seemed to have some averaging function and to make crits to be more likely to be failures or successes if you were bad or good at what you were attempting.
Cool! I did the sort of the same thing:
Roll 3d20.
Attacking: take worst roll. Made success in battle harder than the 60+% WotC designs for.
Skills: take the middle roll.
Saves: take the best roll. Made saves easier since most creatures don't have save proficiencies.
Advantage escalated which roll you took, or added another d20 in the case of saves.
Disadvantage de-escalate the roll you take, adding another d20 in the case of attacking.
Critical success required a 20 plus another success, critical failure required a 1 and another failure.
Going along with this, I basically (more or less) halved the hit points for everything.
It worked quite well IMO, giving the game a more AD&D feel.