Google themselves would like you to 404 if you want to remove a page:
"If the page no longer exists, make sure that the server returns a 404
(Not Found) or 410 (Gone) HTTP status code. Non-HTML file (like PDFs)
should be completely removed from your server."
From a user perspective, make sure that your 404 is a custom one so that they can continue to browse your site should they think it may still contain information for them.
Ultimately, trying to keep the page rank of non-existent pages is an attempt to manipulate page rank, which Google are not going to tell you how to do.
However, if you want to do that, then I'd personally go for pointing them to the homepage only. That way, users will not be thrown to a random irrelevant page and so the UX should still work for them. Doing stuff for search engines but not UX is always a mistake.
Ultimately, like most SEO questions, only Google really know. It wouldn't be difficult for them to tell if a 301d page has completely different content and so not count that. Whether they do that... only they know.