Not a complete answer, but here are two quick checks. Both need to be fullfilled in order to have the columns exchangeable. That is, if you see that there are differences then the 3 columns cannot be exchanged:
First check is of course whether the 3 columns have the same univariate distributions.
Second check: Generate enough samples and produce a ternary histogram, i.e. count how often each combination of numbers appears and plot that e.g. color coded into a ternary diagram. If the diagram isn't symmetric with respect to the 3 columns (3-fold rotation $C_3$ around 0.5,0.5,0.5 and also 3 $\sigma$ mirror-symmetry) then the distributions cannot be the same.
Here are two examples:
This one has obviously not the same distribution for each colunm:
Whereas this one has:
Note: I produced the second set of random numbers by shuffling the rows within each column of the first version of random numbers.
Here's the R code:
## make up some data
df <- data.frame (x = rnorm (5000, mean=.4, sd = .3)^2,
y = rnorm (5000, mean=.4, sd = .3)^2)
df <- round (df*10) / 10
df$z <- 1 - rowSums (df)
df <- df [df$z >= 0,]
## first quick check
## 3d histogram
hist3d <- ddply(df,.(x,y,z),nrow)
ggtern (hist3d, aes (x = x, y = y, z = z, col = V1)) +
geom_point (size = 10) +
scale_color_gradientn (colours = c (low = "darkred", mid = "red", high = "yellow"))
## shuffling within each row (could be done faster by matrix indexing)
df <- t (apply (df, 1, sample))
df <- as.data.frame (df)
colnames (df) <- c ("x", "y", "z")