func NewRand() *mrand.Rand {
	seed := crandSeed()
	return mrand.New(mrand.NewSource(seed))
}
NewRand returns a prng, that is seeded with OS randomness.
The OS randomness is obtained from crypto/rand, however, like with any math/rand.Rand
object none of the provided methods are suitable for cryptographic usage.

Note that the returned instance of math/rand's Rand is not
suitable for concurrent use by multiple goroutines.

For concurrent use, call Reseed to reseed math/rand's default source and
use math/rand's top-level convenience functions instead.
package rand
import (
	crand "crypto/rand"
	"encoding/binary"
	"fmt"
	mrand "math/rand"
)
const (
	strChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"  
)
func init() {
	Reseed()
}