In the spirit of using simple algebraic calculations which are unrelated to computation of the Normal distribution, I would lean towards the following (ordered by decreasing amount of code needed to implement them):
Reverse the Box-Mueller technique: from each pair of normals $(X,Y)$, two independent uniforms can be constructed as $\text{atan2}(Y,X)$ (on the interval $[-\pi, \pi]$) and $\exp(-(X^2+Y^2)/2)$ (on the interval $[0,1]$).
Take the normals in groups of two and sum their squares to obtain a sequence of $\chi^2_2$ variates $Y_1, Y_2, \ldots, Y_i, \ldots$. The expressions obtained from the pairs
$$X_i = \frac{Y_{2i}}{Y_{2i-1}+Y_{2i}}$$
will have a $\text{Beta}(1,1)$ distribution, which is uniform.
That this requires only basic, simple arithmetic should be clear.
Because the exact distribution of the Pearson correlation coefficient of a four-pair sample from a standard bivariate Normal distribution is uniformly distributed on $[-1,1]$, we may simply take the normals in groups of four pairs (that is, eight values in each set) and return the correlation coefficient of these pairs. (This involves simple arithmetic plus two square root operations.)
To a superb approximation, any Normal variate with extremely large standard deviation looks uniform over ranges of much smaller values. Upon rolling this distribution into the range $[0,1]$ (by taking only the fractional parts of the values), we thereby obtain a distribution that is uniform for most practical purposes. This is extremely efficient, requiring the simplest arithmetic operation of all: after rescaling the values to achieve a large SD, simply erase the digits preceding the decimal point!
In every case Normal variables "with known parameters" can easily be recentered and rescaled into the Standard Normals assumed above. Afterwards, the resulting uniformly distributed values can be recentered and rescaled to cover any desired interval. These require only basic arithmetic operations.
The ease of these constructions is evidenced by the following R
code, which uses only one or two lines for each one. Their correctness is witnessed by the resulting near-uniform histograms based on $100,000$ independent values in each case.
set.seed(17)
n <- 1e5
y <- matrix(rnorm(floor(n/2)*2), nrow=2)
x <- c(atan2(y[2,], y[1,])/(2*pi) + 1/2, exp(-(y[1,]^2+y[2,]^2)/2))
hist(x, main="Box-Mueller")
y <- apply(array(rnorm(4*n), c(2,2,n)), c(3,2), function(z) sum(z^2))
x <- y[,2] / (y[,1]+y[,2])
hist(x, main="Beta")
x <- apply(array(rnorm(8*n), c(4,2,n)), 3, function(y) cor(y)[1,2])
hist(x, main="Correlation")
x <- rnorm(n, sd=1e8) %% 1
hist(x, main="Modular")