Usually I would recommend a 301 redirect – if the contennt really has moved to a new location. But in this case, redirecting from various pages to the front page, a 301 would not be recommendable – at least from a SEO point of view. When a search engine reads a 301, it interpretes it as "this content has move permanently to a new location". But in your case that's not the case – and so I would fear that a 301 could actually fire back. The pages you basically just wanted to hide from the user will probably disappear from the search indexes one by one.
Instead I personally would probably use javascript for forwarding users to the front page. The user experience is close to a 301 redirect – but for search engines javascript is mostly not functional so that the pages you just wanted to hide from users can actually stay in the search indexes.
I haven't tried the rabbit hole module myself – but since it seems to be able to have search engines crawl, while users are redirected, at least it sounds worth trying.
ps: just saw your comment on the accepted answer: "those pages are simply not supposed to exist". Well – then it's probably / almost all the same.