// Package jitter provides a random jitter
package jitter

import (
	"math/rand"
	"time"
)

var (
	r = rand.New(rand.NewSource(time.Now().UnixNano()))
)

// Do returns a random time to jitter with max cap specified
func Do(d time.Duration) time.Duration {
	v := r.Float64() * float64(d.Nanoseconds())
	return time.Duration(v)
}