-ritest- is a easy way to do Randomized Inference (thanks Simon HeB), but I'm not certain it works the way I'd like it to for DiD analysis on panel data. My goal is to assign the vector of treatments of one unit to another (repeatedly). I think this works, but I bet it could be improved upon. Or, it may contain an error.

The procedure is as follows.
1. Assign the treatment variable (did) to matrix D. This locks in the treatment vector irrespective of sorting.
2. Within a loop, create a uniform random number (rand) that is used for sorting by cross section (id = cid). It takes two steps.
3. Bring back in the treatment vector D and assign it as the false treatment (did_temp1).
4. Get the rejection statistic (10%) from r(table).
5. Exit the loop and get the mean rejection rate.

Notes: y is the dependent variable. $X is a vector of regressors. year is the time dimension. I'm using Stata 15.1/MP4, but nothing here appears restricted to later versions.

Code:
mkmat did, matrix(D)
matrix R = J(100,1,.)
forv i = 1/100 {
    capture drop rand
    capture drop did_temp1
    qui g rand = runiform()
    qui bysort cid: replace rand = rand[1]
    qui sort rand year
    qui svmat D, names(did_temp)
    qui xtreg y did_temp1 $X i.year , fe cluster(cid)
    matrix R[`i',1]=el(r(table),4,1)<0.1
 }
capture drop res1
svmat R, names(res)
summ res1
Thoughts?

It could be cleaned up a bit if I could get a descriptive statistic on a column of a matrix, but I can't find anyway to do that in Stata.