How to make it so that admins are not able to view private messages of their users?

Well, sort of. Admins can still inject JS in the page that can do anything it likes with what’s displayed in the browser, including transmitting it elsewhere, etc.