SQL Tips #28 - Generating Random Numbers for Non-Crypto Usage


Sunday, 2 September 2018

RAND() has its problems - this approach generates better-distributed random numbers for non-cryptographic usage.

The Query

declare @rangeStart int = 1
declare @rangeEnd int = 6
declare @rangeSize int = (@rangeEnd - @rangeStart)+1
select (@rangeStart + (ABS(CHECKSUM(NewId())) % @rangeSize)) r

Disclaimer

These queries are provided as a guide, and are by no means perfect. I didn't write all of these - many are collated from MSDN documentation and community sources over the years.

Tags

SQL, Programming
Share with: 

Useful SQL tips - how to generate good random numbers for non-crypto usage


Support this Site

Buy me a coffee

Developer Courses

Pluralsight - Hardcore Developer and IT Training
Skype Web SDK: Getting Started
Skype Web SDK: Audio & Video

Popular Articles

What is Kutamo?
Kilimanjaro Climb
Kilimanjaro 2015
Kilimanjaro 2013
Australian Postcodes
New Zealand Postcodes
Worldwide City Database

Favourite Links

Kilimanjaro Climbs
Kutamo Studios
Kutamo Meetings
Litzi
ErrLog.IO
Kutamo

Tags / Keywords

SQL, Programming