I have a sample of N = 401 individuals who completed a self-report measure on mobile-use dependency. In an effort to validate the survey I plan on first running an exploratory factor analysis (EFA) followed by a confirmatory factor analysis (CFA). The questionnaire consisting of 18 binary items so I am using item factor analysis.

I have randomly split the sample into two to carry out EFA on one sample and CFA on the other using the following code:

Code:
set seed 12345
generate random = uniform()
sort random
generate group= .
replace grp = 1 in 1/200
replace grp = 2 in 201/401
Then to run the item exploratory factor analysis (iEFA), I run the following code:

Code:
preserve
drop if grp == 2
tetrachoric i1-i18, posdef
matrix mysigma = r(Rho)    // saving the tetrachoric correlation matrix

factormat mysigma, n(401) mineigen(1) blanks(0.2) // factor analysis
screeplot
rotate, promax(3) oblique kaiser blanks(0.3)  
restore
Every time I rerun the the above chunks of code, I obtain different loadings and sometimes a different number of factors.
What am I missing here?