Question 1. What do you mean by "I want to generate RANDOM integer matrices with integer eigenvalues" ?
It seems to be a difficult question. Let $Z$ be the subset of $M_n(\mathbb{Z})$ constituted of matrices that have only integer eigenvalues.
Step 1. It is easy: Let G be an $N\times N$ real matrix whose entries are independent identically distributed
standard normal random variables $G_{i,j}\sim N(0,1)$ (cf. Ginibre 1965).
Step 2. Of course, we can choose a similar discrete probability measure over $\mathbb{Z}$ and randomly construct elements of $M_n(\mathbb{Z})$. It remains to obtain matrices with eigenvalues in $\mathbb{Z}$.
Unfortunately, if $U_N$ is the number of real eigenvalues of a matrix $G$ (step 1), then $E(U_N)=\sqrt{2N/\pi}+O(1)$ when $N\rightarrow +\infty$; here we want $N$ real eigenvalues! Moreover the real eigenvalues of a matrix $G$ cannot be randomly chosen: cf. for example https://arxiv.org/abs/1512.01449
Then we have two problems: * what is the probability measure induced by $M_n(\mathbb{Z})$ over $Z$ ?
On the other hand, we can write our matrix $A=P^{-1}DP$ where $D$ is an integer diagonal matrix (if $A$ has multiple eigenvalues, then we may choose $D$ as a triangular matrix; cf. below); because of what is written above, I think that * the diagonal of $D$ cannot be randomly chosen.
Question 2. Suppose that we solved the problem of the choice of $D$ in $P^{-1}DP$. Then how to choose $P$ so that $P^{-1}DP\in M_n(\mathbb{Z})$ ? The simplest way is to impose $P\in SL_n(\mathbb{Z})$ (the matrices with $\det=-1$ are useless). Note that the matrix $\begin{pmatrix}-4&8\\-3&6\end{pmatrix}$ cannot be written $P^{-1}diag(0,2)P$ where $P\in SL_2(\mathbb{Z})$ but it can be written $P^{-1}DP$ where $D$ is triangular. Thus, it is better to choose $D$ triangular; I don't know if every matrix in $Z$ can be written $P^{-1}DP$ where $P\in SL_n(\mathbb{Z})$ and $D$ triangular in $M_n(\mathbb{Z})$. If by extraordinary, the answer is yes, then it remains to randomly obtain an element $P\in SL_n(\mathbb{Z})$.
- $SL_n(\mathbb{Z})$ is generated by the transvections. Then we can randomly choose transvections $I_N\pm E_{i,j}$ and consider their product; I think that if $N$ is large, then we must consider many transvections.
*We can also write $A=L_1U_1L_2U_2\cdots$ where the $L_i$ (resp. the $U_i$) are lower-triangular (resp. upper-triangular) with diagonal elements $\pm 1$; I don't think that this randomization is very good but it is easy to write!