To be honest, I like having some randomness. At least for some "Common" items.
I.e. A D&D example would be plain +1 or +2 items that have no secondary effects they're just items with the bonus AC/Attack stats on them.
These basic things allowing you to acquire relevant stats without having to specifically go out of your way to pick up all the special items you can. You just replace these with those special items as and when you naturally come across them.
BG3 almost does this well. Many containers can have random items in... But the way it fails is that every random item is +0 making it literally useless (Instead, if you want your basic +1 or +2 item you have to buy them from a vendor... Who is also selling half the game's special items so why would you even bother with the basic items when the special items have the stats and bonuses...)
The key thing is to not have the stupid Lucky Charm stat, that makes it so you have to open EVERY SINGLE container in hopes of randomly finding some equipment in a flour sack or some crap. Make containers make sense, have gear only be found in clear and logical containers so you only need to check those for gear (Sort of like in BG3 where bookshelves are where you'll find Scrolls). This can (And should) be extended to all loot. We shouldn't be rummaging around in every single barrel and crate and finding completely random stuff, but checking specific containers for specific things.
It could also be nice to have multiple potential spawn locations for at least some special items.
For example, if you had a special item "Goblin Chieftain's Sticking Spear of Stabbing" and also had say 3 different goblin camps. Then this item could have 3 potential spawn locations, which is determined upon game start. So that it can show up in any of the goblin camps, rather than always the exact same one.
Such a thing means that the item is still handplaced, it's still guaranteed to be obtainable in every run. But the difference is that you won't start every game bee-lining towards all the special items immediately, instead you'd progress more naturally by doing other things and then seeing when you happen across the special item spawns (Especially with aforementioned "Basic" items allowing you to fill out your gear with base stats.
Also, don't put half the game's special items onto vendors it's not fun, it's not interesting. It's just lame. Have vendors sell basic items, so you can fill out your stats if random basic items didn't cover everything. Maybe have a handful of special items on vendors throughout the game to entice you into accruing wealth (Or theft skills) to acquire them. But put the majority of special items into the actual world to find by exploring not by running to the nearest town and buying the best gear without ever needing to see combat...
This is because, at the end of the day, when replaying BG3 or DOS2 (With the Additional Uniques mod) and just running the same routes to go and pick up the special items with set spawn locations on every run gets a bit tiresome. It always felt more interesting the first time when not knowing where all the loot was so you just plodded along all freeform and happened across items. Randomization (In a limited form, rather than pure RNG such as in Looter games) can offer that experience of not knowing where loot is thus providing more freeform gameplay rather than the devolution into "I know where every item is, so I'll rush and grab them as soon as possible and ignore literally everything else"