Magento 2.2 Random frontend display issues and 500 error reports

We are running a large Magento site (17 store views) with several custom modules installed.

Most of the time the sites are stable and performing well, however, we do get some random issues where the skinning on the sites fails to apply in the frontend, and have seen occasions where backend can lose formatting, or even return 500 error.

When these happen, cache cleaning usually solves the problem. Does anyone know of potential causes, and preventative measures?

We are using the in-built caching, rather than Varnish.