func Dur(max time.Duration) time.Duration {
	return time.Duration(Int63n(int64(max)))
}
Dur returns a pseudo-random Duration in [0, max)
package rand2
import (
	"math/rand"
	"os"
	"sort"
	"sync"
	"time"
	"github.com/dropbox/godropbox/container/set"
	"github.com/dropbox/godropbox/errors"
)
type lockedSource struct {
	mutex sync.Mutex
	src   rand.Source
}
func (r *lockedSource) Int63() int64 {
	r.mutex.Lock()
	val := r.src.Int63()
	r.mutex.Unlock()
	return val
}
func (r *lockedSource) Seed(seed int64) {
	r.mutex.Lock()
	r.src.Seed(seed)
	r.mutex.Unlock()
}
func NewSource(seed int64) rand.Source {
	return &lockedSource{
		src: rand.NewSource(seed),
	}
}
func init() {
	now := time.Now()
	seed := now.Unix() + int64(now.Nanosecond()) + 12345*int64(os.Getpid())
	rand.Seed(seed)
}
var (
	New = rand.New
	Seed = rand.Seed
	Int63 = rand.Int63
	Uint32 = rand.Uint32
	Int31 = rand.Int31
	Int = rand.Int
	Int63n = rand.Int63n
	Int31n = rand.Int31n
	Intn = rand.Intn
	Float64 = rand.Float64
	Float32 = rand.Float32
	Perm = rand.Perm
	NormFloat64 = rand.NormFloat64
	ExpFloat64 = rand.ExpFloat64
	NewZipf = rand.NewZipf
)