code: func (self *Salter) BToken(size int) []byte {
  	mac := hmac.New(sha256.New, self.salt)
  
  	for _, v := range self.rndSources {
  		itemSize := float32(size) * (float32(v.Weight) / float32(self.sumWeight))
  		mac.Write(getRandomBytes(v.Reader, int(itemSize)))
  	}
  	macSum := mac.Sum(nil)
  
  	self.salt = macSum
  	return macSum
  }
docs: // BToken generates an array of random bytes with length as specified by size
  // parameter.