# Algorithm to generate normal matrices at random

I would like to generate normal matrices by an, say python, algorithm, that produces normal matrices distributed evenly in the limit of large n. I would not like to be restricted to Hermitian matrices since I would at some point also need imaginary eigenvalues.

-
What do you mean with 'evenly distributed'? –  Roland Feb 4 at 18:28

Of course, every normal matrix can be written $$A = UDU^*$$
where $D$ is diagonal (with the eigenvalues), and $U$ is unitary. Maybe it would work to construct your normal matrices starting with the diagonal form - you can choose exactly the eigenvalues you would like, or at least choose them from a user-determined set of numbers, and then you just need to find a way to generate unitary matrices (in a manner that is satisfactorily "random" for your needs).