I'm doing some analysis of TLS in different browsers (using Safari, Chrome, and Firefox) and have noticed that while Safari sends the correct unix timestamp, Chrome and Firefox send random values each time it send the ClientHello. Is this by design?
Yes, this is by design. The actual time is not important to TLS, and was only added to the ClientHello by the protocol as a protection against bad random number generation impacting the rest of the random data required as a part of the message.
Since it is not important, the protocol specifically states that it is not required to be the correct time*. The makers of some browsers have therefore decided to randomly skew the time portion of the random element in each ClientHello message they send.
A main reason for this is to aid in preventing tracking, an impetus which came from Tor - see the Mozilla post about this decision.
*RFC 2246/5246 § 188.8.131.52. Client hello:
Clocks are not required to be set correctly by the basic TLS Protocol;