Hi Ashish,
QuTiP has a variety of functions for generating random density
matrices. For a use case like yours where the precise distribution of
returned dm's is important, you should read the underlying code and
papers and check carefully whether they meet your needs.
You can read the documentation for the existing methods at
https://qutip.org/docs/latest/apidoc/functions.html?highlight=rand_dm#qutip.random_objects.rand_dm.
If needed, you can of course also implement your own rand_dm that
tweaks one of the methods above. If you feel it is broadly useful or
more correct than an existing method, please contribute it back by
opening a suitable PR or issue on GitHub.
> 1. Is my approach correct for generation of random density matrix for qutrits. Can I generalize it for qudit by using rand_dm(d**n,0.5,[[d**n],[d**n]) , where n is the number of qudits?
Answered in the docs, I think.
> 2. Does the random density matrix generated by rand_dm() covers entire state space for that qudit system, is it random enough or is there any method to change the initial seed?
See discussion above.
> 3. What kind of randomization is used in rand_dm, are there any citations to refer to?
For the two other implementations, there are citations. The rand_dm
method is just a useful implementation made specifically for QuTiP, I
think. See docs linked above for the citations for the other two
methods.
Regards,
Simon