Relating to food, I actually really like Crawl's version, even though it makes me grumble every so often.
Basically, you can only eat raw meat if you're Hungry or more. There's also Very Hungry, Near Starving, and Starving. Raw meat can be obtained by butchering corpses, although some isn't edible. It's a good idea to keep as many of the rations as long as possible, so this creates some tough tactical choices. If I'm getting hungry and level is still relatively unexplored, I find myself going as far as "Near Starving" before consuming a ration, exploring all the while. If the level is mostly explored, then you have to weigh whether you're willing to go down to the next level hungry and to tougher monsters. The orc mines, for example, are an abundant source of food, but really quite dangerous.
Generalizing though, I believe that the almost purely random approach is OK. Game mechanics and tactical knowledge should give you a much larger advantage (strength is better for maces, dexterity for spears and swords, kobolds can't be eaten or you'll get sick, certain levels are known for certain monsters which you can attempt countering such and such way), but should not guarantee success. Crawl has a way of constantly giving you challenges, whether they be strategic by making big, long-lasted decisions (which skills to focus on, dungeon branches with themes) or tactical by shoving monsters or groups of monsters your way that are definitely your match.
So basically, random is OK, but it should always have implicit input from the player. You should not say that level 3 always has this and that type of monsters, because the player can be really weak or really tough on reaching level 3. You can always chose to create more loot of some type based on the player's inventory, and this kind of stuff. If the player is too low on permanent food, you can generate more corpses but keep ration generation at the same level. This should, in principle, but not always, allow the player to restock on rations, IF HE PLAYS ADEQUATELY.
Unpredictability is a pillar of roguelikes, and so are random deaths you can't avoid. Knowing the game you're playing should highly increase the odds of survival, but never to the point or reaching 100%, or even 50%! I've never finished a roguelike, seldom go too far, no matter how hard I try or how many times I play, but I still have loads of fun!