code: func (p *packetNumberGenerator) getRandomNumber() uint16 {
  	b := make([]byte, 2)
  	rand.Read(b) // ignore the error here
  
  	num := uint16(b[0])<<8 + uint16(b[1])
  	return num
  }
docs: // getRandomNumber() generates a cryptographically secure random number between 0 and MaxUint16 (= 65535)
  // The expectation value is 65535/2