Why is LCG PRNG chosen to be as c++ rand() function? The C++ rand() function is an  Linear Congruential Generator (LCG) PRNG. my questions are:


Why was this algorithm  chosen?
What are the pros and cons?
Is it good for cryptography?
The C++ rand() function (actually C function) is not (intended | designed | standarized) for Cryptographic purposes.


  
  Why was this algorithm chosen?
  


As SEJPM noted in the comments, the rand function comes from C and C++ has no upper restriction for the implementation.


  
  What are the pros and cons?
  Is it good for cryptography?
  


Long story short answer; don't use it for cryptography. For cryptographic purposes use /dev/urandom 

The good; it is fast and small. The bad; it is deterministic, and the seed is small ( as noted by poncho in the comments) that prevents it from producing a cryptographically secure RNG from LCG.