I have no idea whether the randomized SVD method is supposed to work for
complex data or not (from a mathematical point of view). I think that all
scikit-learn estimators assume real data (or integer data for class labels)
and our input validation utilities will cast numeric values to float64 by
default. This might be the cause of your problem. Have a look at the source
code to confirm. The reference to the paper can also be found in the
docstring of those functions.
scikit-learn mailing list