Yes. Every character is drawn with crypto.getRandomValues, the browser's cryptographic generator, not Math.random. The draw uses bias rejection: values that would make some characters more likely are discarded and drawn again. The password is built on your device, is not sent to any server, is not written to local storage and does not appear in analytics events.