@theducks mentioned failing hard drives. Bad memory can also cause weird issues. On Windows, I suggest
HDDScan and
Memtest86.
Also specific to newer versions of Windows is the standby memory glitch. On certain system configurations, the standby memory list fails to empty itself and eventually fills up the RAM and pushes other things to the slower swap memory. Tricky part is that it still
looks free in the task manager.
To check this, go to Task Manager > Performance > Open Resource Monitor > Memory Tab to check. If this is the case, either reboot every so often or use
Sysinternals RAMMap to clear the standby list.
A bit more advanced, but RAMMap can also check if a certain process is being paged out.