Core component of SQL Server for storing, processing, and securing data
Corruption is always due to issues outside SQL Server. That is, hardware errors or errors somewhere in the I/O subsystem. The root cause could be a bad memory stick, but that often manifests itself in unexpected crashes as well. The most likely culprit is the I/O subsystem. Which in today's virtualised world is very complex with many components both in hardware and in software.
Tracking down the exact component can be very tedious, since you basically have to replace them one by one. And then run long enough to feel sure that corruption is not occurring anymore.
The alternative is to move to new hardware directly. It will be a discussion you will have to make with your infrastructure folks.
Staying in production with what you have now is not really an option.