The answers for your question can be broken down as following:
1. A Skill from the developer account(s) is always accessible on devices which uses this account(s).
2. Per default any other user may only find a skill when the status is "Live" which means it was submitted, passed certification from amazon and was distributed to Alexa Skill Store. Besides the status there further constrains which might apply:
a) Under Distribution - Availability either "All countries or regions" must be selected or at least the once, which the account is assigned to. Otherwise it also can't find the skill.
b) Under Build - Tools - Languages you need to support the language which is set on the device.
The reference is: https://developer.amazon.com/en-US/docs/alexa/custom-skills/develop-skills-in-multiple-languages.html#:~:text=Customers%20who%20interact%20with%20Alexa,then%20optionally%20add%20English%20later.&text=Should%20your%20skill%20be%20available%20everywhere?
3. To make a skill available to non-developer account(s) but not for general public there is also the Beta-Test Feature: https://developer.amazon.com/en-US/docs/alexa/custom-skills/skills-beta-testing-for-alexa-skills.html - if an account is added there it will find the skill regardless of status.
4. Lastly, a skill invocation name is not unique and could be used by multiple skills. Alexa will prefer skill which have been activated (e.g. via the Alexa App) by the account. If not applicable it will choose the skill on popularity.