Is it a good practice to collect different numbers of data (randomly picked) per class? I am totally new to data science and neural networks. So I want to make a simple chord recognition neural network using chroma data from audio. I collected some recordings and songs, and then divide their slices/trims by chords given in the dataset. Is it good for each chord class not having same amount of training audio data?

It is good practice to collect your training data such that it comes from the same distribution as the unseen data. Note that this is not a hard constraint (i.e. your method may still be successful) but can be crucial when using some ML algorithms (like Bayesian approaches which account for prior probabilities).
