I am getting random crashes on my C++ application, it may not crash for a month, and then crash 10 times in a hour, and sometimes it may crash on launch, while sometimes it may
That sounds like something tricky like a race condition.
I'd suggest you create a debug build and use that. You should also make sure that a core dump is created when the program crashes.
The next time the program crashes, you can launch gdb on the coredump and see where the problem lies. It'll probably be a consecutive fault, but this should get you started.