Is it always possible to map $n$ distinct vectors to $n$ distinct scalars? Recently while reading a paper I came across the claim that if we have $n$ distinct vectors $\vec{x}_i \in \mathbb{R}^d$ (they didn't clarify what they mean by 'distinct' but I assume it means no two vectors have all the same values) that it is always possible to select another vector $\vec{a} \in \mathbb{R}^d$ such that $i \neq j$ implies $\langle \vec{x}_i, \vec{a}\rangle \neq \langle \vec{x}_j, \vec{a}\rangle$, where $\langle \cdot , \cdot \rangle$ denotes the inner product (i.e., dot product). 
While I believe them that it's true, I can't figure out how to prove it for myself. Note that $n$ is finite, and that we know all $n$ vectors before we have to select $\vec{a}$.

For any pair of distinct vectors $x_i \not= x_j \in \mathbb{R}^d$, the probability that $\langle x_i, a\rangle = \langle x_j, a\rangle$ for a uniformly random $a \in \mathbb{R}^d$ on the unit sphere is $0$.
You can see that this is true intuitively by recalling the relationship between the dot product and the angle between two vectors.  It can be proved formally by integrating over the unit sphere.  
Thus, you can choose a uniformly random vector $a$ on the unit sphere and it will work with probability $1$.
