Faits :
A.
A._, née en 1962, avait travaillé comme aide de cuisine. Dès janvier 2014, elle était inscrite à la Caisse de chômage d'Unia. A ce titre, elle était assurée auprès de la Caisse nationale suisse d'assurance en cas d'accidents (CNA) contre le risque d'accidents. Le 3 décembre 2014, elle a chuté sur un tapis roulant dans une salle de fitness. Cette chute a provoqué une contusion du genou droit, une fracture P3d5 gauche et un traumatisme à l'épaule droite, avec des lésions partielles du tendon du supra-épineux et du tendon de l'infra-épineux, une tendinopathie du long chef du biceps et une arthropathie acromio-claviculaire. Les blessures à l'épaule ont exigé une intervention chirurgicale, qui a été effectuée le 8 décembre 2015. La CNA a pris en charge le cas.
Du 4 au 25 juin 2019, A._ a été hospitalisée à la Clinique romande de réadaptation à Sion (CRR). A l'issue du séjour, le cas a été considéré comme stabilisé sur le plan médical. Par la suite, le docteur B._, spécialiste en chirurgie orthopédique et médecin d'arrondissement de la CNA, a examiné l'assurée. Dans son rapport du 30 septembre 2019, il a considéré que la situation était stabilisée sur le plan médical. Il a retenu en outre que l'assurée ne pouvait plus travailler en tant qu'aide-cuisinière, mais qu'une capacité de travail dans une activité adaptée était exigible sans limitation de temps ni de rendement.
Le 16 octobre 2019, la CNA a mis fin à la prise en charge des frais médicaux (à l'exception de deux contrôles orthopédiques annuels et des antalgiques) ainsi qu'aux indemnités journalières avec effet au 31 janvier 2020. Par décision du 20 février 2020, confirmée sur opposition le 17 avril 2020, elle a alloué à l'assurée une indemnité pour atteinte à l'intégrité fondé sur un taux de 15 %, mais lui a nié le droit à une rente d'invalidité, partant d'un taux d'invalidité de 3 %.
B.
Par arrêt du 29 juin 2021, la cour cantonale a rejeté le recours formé par A._ contre la décision sur opposition du 17 avril 2020.
C.
A._ interjette un recours en matière de droit public contre cet arrêt, en concluant principalement à sa réforme en ce sens que la CNA soit condamnée à lui verser une rente d'invalidité fondée sur un taux d'invalidité de 14 % à compter du 31 janvier 2020. A titre subsidiaire, elle conclut à son annulation suivie du renvoi de la cause à l'autorité précédente.
La CNA, le tribunal cantonal et l'Office fédéral de la santé publique ont renoncé à se déterminer.

Considérant en droit :
1.
Le recours est dirigé contre un arrêt final (<ref-law>) rendu en matière de droit public (<ref-law>) par une autorité cantonale de dernière instance (art. 86 al. 1 let. d LTF). Il a été déposé dans le délai (<ref-law>) et la forme (<ref-law>) prévus par la loi. Il est donc recevable.
2.
2.1. Le litige porte sur le point de savoir si la cour cantonale a violé le droit fédéral en confirmant le refus de l'intimée d'allouer une rente d'invalidité. Au vu de la motivation du recours et des conclusions prises, est uniquement litigieux l'abattement à prendre en considération pour fixer le revenu hypothétique d'invalide.
2.2. Lorsque la décision qui fait l'objet d'un recours concerne l'octroi ou le refus de prestations en espèces de l'assurance-accidents, le Tribunal fédéral n'est pas lié par les faits établis par l'autorité précédente (art. 97 al. 2 et 105 al. 3 LTF).
3.
3.1. Selon l'<ref-law>, les prestations d'assurance sont allouées en cas d'accident professionnel, d'accident non professionnel et de maladie professionnelle. Si l'assuré est invalide (<ref-law>) à 10 % au moins ensuite d'un accident, il a droit à une rente d'accident (<ref-law>). Pour évaluer le taux d'invalidité, le revenu que l'assuré aurait pu obtenir s'il n'était pas invalide est comparé avec celui qu'il pourrait obtenir en exerçant l'activité qui peut raisonnablement être exigée de lui après les traitements et les mesures de réadaptation, sur un marche du travail équilibré (<ref-law>; méthode ordinaire de la comparaison des revenus).
3.2. Le revenu d'invalide doit être évalué avant tout en fonction de la situation professionnelle concrète de l'assuré. En l'absence d'un revenu effectivement réalisé - soit lorsque la personne assurée, après la survenance de l'atteinte à la santé, n'a pas repris d'activité lucrative ou alors aucune activité normalement exigible -, le revenu d'invalide peut être évalué sur la base de salaires fondés sur les données statistiques résultant de l'enquête suisse sur la structure des salaires (ESS), publiée par l'Office fédéral de la statistique. Aux fins de déterminer le revenu d'invalide, les salaires fixés sur la base des données statistiques de l'ESS peuvent à certaines conditions faire l'objet d'un abattement de 25 % au plus (<ref-ruling> consid. 4.2.3; <ref-ruling> consid. 5b/aa-cc). Une telle déduction ne doit pas être opérée automatiquement, mais seulement lorsqu'il existe des indices qu'en raison d'un ou de plusieurs facteurs, l'intéressé ne peut mettre en valeur sa capacité résiduelle de travail sur le marché du travail qu'avec un résultat économique inférieur à la moyenne (<ref-ruling> consid. 4.1; <ref-ruling> consid. 5b/aa).
3.3. Selon la jurisprudence, la mesure dans laquelle les salaires ressortant des statistiques doivent être réduits dépend de l'ensemble des circonstances personnelles et professionnelles du cas particulier (limitations liées au handicap, âge, années de service, nationalité/ catégorie d'autorisation de séjour et taux d'occupation). Une déduction globale maximale de 25 % sur le salaire statistique permet de tenir compte des différents éléments qui peuvent influencer le revenu d'une activité lucrative (<ref-ruling> consid. 5.2; <ref-ruling> consid. 5.2; <ref-ruling> consid. 5b/aa-cc). Il n'y a pas lieu de procéder à des déductions distinctes pour chacun des facteurs entrant en considération; il faut bien plutôt procéder à une évaluation globale, dans les limites du pouvoir d'appréciation, des effets de ces facteurs sur le revenu d'invalide, compte tenu de l'ensemble des circonstances du cas concret (ATF <ref-ruling> précité consid. 5b/bb; arrêts 8C_766/2017 du 30 juillet 2018 consid. 8.3.1; 8C_227/2017 du 17 mai 2018 consid. 3.1).
3.4. Le point de savoir s'il y a lieu de procéder à un abattement sur le salaire statistique en raison de circonstances particulières (liées au handicap de la personne ou à d'autres facteurs) est une question de droit qui peut être examinée librement par le Tribunal fédéral; en revanche, l'étendue de l'abattement du salaire statistique dans un cas concret constitue une question relevant du pouvoir d'appréciation, qui est soumise à l'examen du juge de dernière instance uniquement si la juridiction cantonale a exercé son pouvoir d'appréciation de manière contraire au droit, soit si elle a commis un excès positif ("Ermessensüberschreitung") ou négatif ("Ermessensunterschreitung") de son pouvoir d'appréciation ou en a abusé ("Ermessensmissbrauch"), notamment en retenant des critères inappropriés, en ne tenant pas compte de circonstances pertinentes, en ne procédant pas à un examen complet des circonstances pertinentes ou en n'usant pas de critères objectifs (<ref-ruling> consid. 5.1).
4.
4.1. Pour déterminer le revenu d'invalide, les premiers juges se sont référés - à l'instar de l'intimée - aux données statistiques de l'ESS 2016, en prenant pour base le salaire versé à une femme dans le secteur privé, avec un niveau de compétence 1, correspondant à des tâches physiques ou manuelles simples et ne nécessitant aucune formation particulière. Après un abattement de 5 %, tel qu'opéré par l'intimée pour tenir compte des limitations fonctionnelles auxquelles la recourante était confrontée, il résultait un revenu d'invalide de 52'581 fr. Les juges cantonaux ont considéré que les autres facteurs invoqués par la recourante - notamment son âge, les difficultés en français et l'absence de formation - n'étaient pas pertinents et ne justifiaient pas un abattement supérieur à celui opéré par l'intimée.
4.2. La recourante conteste uniquement le taux d'abattement opéré sur le salaire statistique. Elle soutient que la cour cantonale aurait commis un excès négatif de son pouvoir d'appréciation en se bornant à examiner, de manière distincte, certains des facteurs entrant en considération, au lieu de procéder à une analyse globale de sa situation personnelle et professionnelle. Ainsi, le taux de 5 % ne tiendrait pas compte de l'interdépendance des facteurs personnels et professionnels qui contribueraient à la désavantager sur le marché du travail. Au regard de la jurisprudence du Tribunal fédéral dans des cas similaires, l'abattement aurait dû être à tout le moins de 15 %.
4.3.
4.3.1. Une réduction au titre du handicap dépend de la nature des limitations fonctionnelles présentées et n'entre en considération que si, sur un marché du travail équilibré, il n'y a plus un éventail suffisamment large d'activités accessibles à l'assuré (cf. arrêts 8C_659/2021 du 17 février 2022 consid. 4.3.1; 8C_118/2021 du 21 décembre 2021 consid. 6.3.1). En l'espèce, la cour cantonale a décrit les limitations fonctionnelles de la recourante comme suit dans les considérants de son arrêt: un port de charges ponctuel limité à 3 kg du côté droit, sans mouvement de rotation répété de l'épaule, pas de travail s'effectuant au-dessus du plan de l'épaule ni monter sur une échelle. Cette description apparaît toutefois erronée dans la mesure où il ressort de l'état de fait de l'arrêt attaqué, qui se réfère aux rapports de la CRR et du médecin d'arrondissement, qu'une activité adaptée ne doit pas comprendre le port répété de charges supérieures à 5-10 kg, ni les activités nécessitant le maintien du membre supérieur droit au-dessus du niveau des épaules, et qu'elle doit privilégier les activités coude au corps. Au vu de cette délimitation moins restrictive des activités accessibles à la recourante, il apparaît d'autant moins critiquable de considérer, comme l'ont fait les premiers juges, que les seules limitations fonctionnelles ne restreignent pas de manière significative les activités légères, raisonnablement exigibles de la recourante, en tout cas pas dans une mesure qui justifierait un abattement supérieur à 5 %.
4.3.2. Par rapport au critère de l'âge, le Tribunal fédéral n'a pas encore tranché le point de savoir si, dans le domaine de l'assurance-accidents obligatoire, il constitue un critère d'abattement ou si l'influence de l'âge sur la capacité de gain doit être prise en compte uniquement dans le cadre de la réglementation particulière de l'<ref-law> (cf. arrêts 8C_659/2021 du 17 février 2022 consid. 4.3.2: 8C_597/2020 du 16 juin 2021 consid. 5.2.5 et la référence citée). Cette question peut encore demeurer indécise, dès lors que la recourante n'a pas exposé - et on ne voit pas - en quoi ses perspectives salariales seraient concrètement réduites sur un marché du travail équilibré à raison de son âge. En outre, étant âgée de 58 ans au moment tant de la naissance d'un éventuel droit à la rente que de la décision sur opposition, la recourante n'avait pas encore atteint l'âge à partir duquel le Tribunal fédéral reconnaît généralement que ce facteur peut être déterminant et nécessite une approche particulière (arrêts 9C_486/2013 du 2 décembre 2013 consid. 3.2.2, non publié in <ref-ruling>; 8C_175/2020 du 22 septembre 2020 consid. 4.2). Comme les activités adaptées envisagées du niveau de compétence 1 ne requièrent ni formation, ni expérience professionnelle spécifique, les effets pénalisants au niveau salarial induits par l'âge ne peuvent pas être considérés comme suffisamment établis. En outre, il faut rappeler que ces emplois non qualifiés sont, en règle générale, disponibles indépendamment de l'âge de l'intéressé sur un marché du travail équilibré (cf. <ref-ruling> consid. 7.2.1; arrêts 8C_661/2018 du 28 octobre 2019 consid. 3.3.4.2; 8C_103/2018 du 25 juillet 2018 consid. 5.2).
4.3.3. La recourante soutient que son âge se situerait bien au-delà de la cinquantaine et ne serait compensé par aucun élément d'ordre professionnel ou personnel. Ainsi, elle ne disposerait d'aucune formation, son expérience professionnelle se limiterait à un travail d'aide-cuisinière pendant onze ans, sans expérience dans un autre domaine, et elle aurait été absente du marché du travail depuis 2013. Or l'absence de formation et d'expérience ne joue en règle générale pas de rôle lorsque le revenu d'invalide est déterminé en référence au salaire statistique auquel peuvent prétendre les femmes effectuant des activités simples et répétitives du niveau de compétence 1, comme c'est le cas en l'espèce. En effet, ce niveau de compétence de l'ESS concerne une catégorie d'emplois ne nécessitant ni formation ni expérience professionnelle spécifique (cf. arrêts 8C_118/2021 du 21 décembre 2021 consid. 6.3.2; 8C_175/2020 du 22 septembre 2020 consid.4.2). Quant à la durée de l'absence au marché du travail, elle ne constitue pas non plus une circonstance déterminante pour un abattement dans le contexte d'une activité adaptée relevant de tâches manuelles simples (cf. arrêt 9C_17/2018 du 17 avril 2018 consid. 4.3 et les références).
4.3.4. Finalement, la recourante, qui est de langue maternelle turque, invoque ses difficultés en français, lesquelles nécessiteraient l'intervention d'un interprète pour les rendez-vous médicaux. Les médecins de la CRR auraient également retenu que le pronostic de réinsertion dans une activité adaptée était défavorable, notamment en raison des problèmes de langue. Toutefois, il ressort des constatations de la cour cantonale que la recourante vit en Suisse depuis une trentaine d'années et qu'elle parle certes peu le français, mais le comprend assez bien. Par ailleurs, le niveau de compétence 1 déterminant en l'espèce ne nécessite pas, selon la jurisprudence constante, une bonne maîtrise d'une langue nationale (cf. par exemple arrêts 8C_64/2021 du 14 avril 2021 consid. 6.3; 9C_115/2018 du 5 juillet 2018 consid. 5.2 et les références).
4.4. Eu égard de l'ensemble de ces circonstances, la juridiction cantonale n'a pas excédé son pouvoir d'appréciation en confirmant le taux d'abattement de 5 % appliqué par l'intimée. Par conséquent, le recours s'avère mal fondé et doit être rejeté.
5.
La recourante, qui succombe, supportera les frais judiciaires (<ref-law>).

Par ces motifs, le Président prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 800 fr., sont mis à la charge de la recourante.
3.
Le présent arrêt est communiqué aux parties, à la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, et à l'Office fédéral de la santé publique.
Lucerne, le 26 avril 2022
Au nom de la Ire Cour de droit social
du Tribunal fédéral suisse
Le Président : Wirthlin
La Greffière : Betschart