When transforming data that do not have a normal distribution, what could be the best function to obtain a distribution without bias? In addition, they are discrete data and many of them have zero values. Thank you!
If the is a discrete response you may wish to consider discrete outcomes models; these have the transformation built in (not of the raw data but the modelled response).
See http://www.bristol.ac.uk/cmm/software/mlwin/mlwin-resources.html#discrete
Depends what the distribution are like. If they are, say, similar to a Poisson then as Kelvyn Jones there are methods that assume that. If there are more zeroes than you'd expect from Poisson, then there are a few methods for that, like zero inflated Poisson regression (e.g., https://stats.idre.ucla.edu/r/dae/zip/ ). These alternatives all have different assumptions about your underlying model, but these would be a good place to start.
It is based on your data. Poisson model is frequently used in describing discrete data. Even though the zeros would not too many for Poisson to fit, however, the assumption of Poisson that the mean should equal to the variance is pretty strong. You can also try negative binomial or gamma distribution to avoid overdispersion depends on your data. I think you would like to read the paper by Manning and Mullahy on transform of data, which will help.
W.G. Manning, J. Mullahy. Journal of Health Economics 20 (2001) 461–494
Would you mind elaborating the data more? I am assuming that you are talking about response that it is discrete and with many zeros. In this case, I think you can choose zero-inflated Poisson regression model.