There is ONE thing I do EVERY time ANYTHING in Linux fails!!!!!!!!!!
Memtest86!!!!
Linux is normally very very easy on a RAM failures... A dead bit of ram, and it just does odd things now and then. Windows usually dies very quickly if any hardware fails... But Linux is very forgiving...
Run MEMTEST86 for sure and be sure that nothing in RAM has not failed. I have several machines that must bust RAM pretty hard and every now and then Linux burps and it traces right to failed RAM...
Check that RAM first for sure!!! In all cases, except when a video card blew up once, this random boot stuff was all a bad RAM stick. And MEMTEST finds it in the first seconds... Windows runs for a day or two, Linux can run for weeks or months with dead RAM... That is why almost all version of Linux include MEMTEST right up front and suggest you use it often!!!