[step:Diagonalise $\rho(g)$ on $V$ and produce a dual eigenbasis on $V^*$]Fix $g \in G$. Since $G$ is finite, $g$ has finite order, hence so does $\rho(g) \in \operatorname{GL}(V)$: there exists $m \geq 1$ with $\rho(g)^m = I$. The minimal polynomial of $\rho(g)$ divides $X^m - 1$, which has distinct roots over $\mathbb{C}$ (the $m$-th roots of unity), so $\rho(g)$ is diagonalisable. Choose a basis $\mathbf{e}_1, \ldots, \mathbf{e}_n$ of $V$ such that $\rho(g)\mathbf{e}_j = \lambda_j \mathbf{e}_j$, where $\lambda_1, \ldots, \lambda_n \in \mathbb{C}$ are the eigenvalues (each $|\lambda_j| = 1$ since they are roots of unity). Then
\begin{align*}
\chi_\rho(g) = \operatorname{tr}(\rho(g)) = \sum_{j=1}^n \lambda_j.
\end{align*}
Let $\varepsilon_1, \ldots, \varepsilon_n \in V^*$ be the dual basis, defined by $\varepsilon_i(\mathbf{e}_j) = \delta_{ij}$. We compute the action of $\rho^*(g)$ on $\varepsilon_i$. For each $j$,
\begin{align*}
\bigl(\rho^*(g)\varepsilon_i\bigr)(\mathbf{e}_j) = \varepsilon_i\bigl(\rho(g^{-1})\mathbf{e}_j\bigr) = \varepsilon_i\bigl(\lambda_j^{-1} \mathbf{e}_j\bigr) = \lambda_j^{-1}\, \delta_{ij},
\end{align*}
where the second equality uses $\rho(g^{-1}) = \rho(g)^{-1}$ acting on the eigenvector $\mathbf{e}_j$ with eigenvalue $\lambda_j^{-1}$. So $\rho^*(g)\varepsilon_i$ takes the value $\lambda_i^{-1}$ at $\mathbf{e}_i$ and $0$ at all other basis vectors, i.e.,
\begin{align*}
\rho^*(g)\varepsilon_i = \lambda_i^{-1}\, \varepsilon_i.
\end{align*}
Hence $\varepsilon_1, \ldots, \varepsilon_n$ is a basis of $V^*$ diagonalising $\rho^*(g)$, with eigenvalues $\lambda_1^{-1}, \ldots, \lambda_n^{-1}$.[/step]