add cendof, cget, cset! functions
re-add #8309 (which was reverted)

This reverts commit 2abb59bc443fa9ebf876ebc6a45f6bde18ac2c88.
This reverts commit 611732862e20adc8403adf0377981cdd6acf859d.
re-enable "full-range" rand