code: func Deviation(generator *rand.Rand, factor float64) Transformation {
  	random := fallbackNewRandom(generator)
  
  	return func(duration time.Duration) time.Duration {
  		min := int64(math.Floor(float64(duration) * (1 - factor)))
  		max := int64(math.Ceil(float64(duration) * (1 + factor)))
  
  		return time.Duration(random.Int63n(max-min) + min)
  	}
  }
docs: // Deviation creates a Transformation that transforms a duration into a result
  // duration that deviates from the input randomly by a given factor.
  //
  // The given generator is what is used to determine the random transformation.
  // If a nil generator is passed, a default one will be provided.
  //
  // Inspired by https://developers.google.com/api-client-library/java/google-http-java-client/backoff