Most of these answers are a bit misguided and demonstrate a confusion between salts and cryptographic keys. The purpose of including salts is to modify the function used to hash each user's password so that each stored password hash will have to be attacked individually. The only security requirement is that they are unique per user, there is no benefit in them being unpredictable or difficult to guess.
[...] Random 64-bit salts are very unlikely to ever repeat even with a billion registered users, so this should be fine.
Since a salt needs to be unique and a GUID is unique as well as long enough (128-bits):
Would it be secure to have GUIDs as a salt instead of a CSPRNG?
(The only flaw I could think of was if the generation of a GUID would somehow be flawed.)