Faits :
A.
A.a. Le 11 octobre 2006, la société panaméenne A._ Corporation (ci-après: A._) a ouvert une relation bancaire auprès de la succursale genevoise de la banque B._ SA (ci-après: la banque). Le 10 novembre 2006, A._ a confié à la banque un mandat de gestion discrétionnaire avec un objectif d'investissement à risque modéré. La banque a placé des avoirs de A._ dans deux fonds d'investissement (xxx et zzz), dont l'unique objectif était de collecter de l'argent pour le placer auprès de Bernard Madoff Investment Services (BMIS). Par la suite, les deux fonds d'investissement ont racheté ces parts ou actions, et A._ a encaissé 1'088'090 euros à titre de plus-value; en réalité, ces plus-values étaient fictives, BMIS créditant de prétendues plus-values au moyen de fonds remis par de nouveaux investisseurs, selon le système dit "de cavalerie". A la suite de la crise financière de 2008, le système s'est écroulé. Le liquidateur de BMIS a alors entrepris des démarches en vue de récupérer les plus-values fictives versées.
Le 12 novembre 2010, la banque a informé A._ que le liquidateur de BMIS se réservait le droit de réclamer le remboursement (" claw back ") de montants importants aux deux fonds d'investissement xxx et zzz ainsi qu'à leurs anciens actionnaires ou détenteurs de parts. En raison de ce risque, la banque a bloqué les avoirs de A._ auprès d'elle à concurrence d'un montant total de 1'088'090 euros, correspondant aux prétendues plus-values créditées à A._. A la suite de négociations, la banque a libéré les avoirs contre la fourniture par A._ d'une garantie bancaire d'un montant de 909'756 euros.
A.b. Le 2 novembre 2012, A._ a déposé, en vue de conciliation, une demande dirigée contre la banque tendant, en substance, à la constatation qu'elle ne pouvait pas être tenue de rembourser à la banque les montants que celle-ci pourrait être amenée à payer dans le cadre d'un " claw back ". D'après A._, la banque était responsable du choix des investissements dans les "produits Madoff", faute d'avoir procédé à des vérifications sérieuses; ce faisant, elle avait violé son devoir de diligence et de fidélité, de sorte que sa responsabilité contractuelle était engagée envers A._. A l'issue de l'audience de conciliation du 10 janvier 2013, A._ a reçu l'autorisation de procéder. Elle n'en a pas fait usage dans le délai imparti.
B.
Le 19 avril 2014, A._ a déposé une requête de preuve à futur. Dans le cadre d'une éventuelle action contre B._ SA, elle entendait, d'une part, faire constater qu'en cas de " claw back ", la banque ne disposait pas d'une créance en remboursement à son encontre et, d'autre part, réclamer le paiement d'un montant d'au moins 200'000 fr. à titre de remise des rétrocessions perçues par la banque en relation avec les investissements effectués avec les avoirs confiés. Pour lui permettre d'estimer les chances de succès de cette action, A._ demandait qu'il soit ordonné à la banque de produire:
"Titre 51: Tous documents démontrant les examens auxquels la banque B._ SA s'est livrée, notamment les analyses des risques, à propos des investissements dans les «fonds Madoff» (xxx et zzz, notamment) qu'elle a sélectionnés pour les clients qui lui avaient confié des avoirs.
Titre 52: Tous documents (notamment, comptes-rendus d'entretiens, notes internes, procès-verbaux de réunions, etc.) relatifs aux décisions, y compris les documents dans lesquels lesdites décisions ont été formalisées, prises par les comités et/ou services qui ont été amenés, entre 2006 et 2010, directement ou indirectement, à décider de la politique d'investissement de la banque, et en particulier les documents relatifs aux fonds gérés par Bernard Madoff (...).
Titre 53: Toute la correspondance interne (y compris la correspondance électronique, les mémos électroniques, sur papier, manuscrits, etc.) échangée au sein de la banque B._ SA (ou avec des sociétés affiliées) entre les personnes chargées de gérer les fonds de A._ Corporation, ou entre la ou les personne (s) chargée (s) de la gestion de ce portefeuille et d'autres collaborateurs de la banque.
Titre 54: Tous documents, notamment accords entre la banque B._ SA et les «fonds Madoff» (xxx et zzz, notamment), et décomptes, permettant d'établir le montant exact des rétrocessions (ou «rétro-commissions»), ou du moins les paramètres de calcul, reçues par la banque (...) au titre d'investissements dans les «fonds Madoff» et au titre des autres investissements faits avec les avoirs confiés à cette banque par A._ Corp.
Titre 55: Tout écrit démontrant que la banque B._ SA a informé A._ Corp. des rétrocessions reçues au titre d'investissements dans les «fonds Madoff» (xxx et zzz) et au titre des autres investissements faits avec les avoirs confiés à cette banque par A._ Corp."
La banque a conclu au rejet de la requête. Elle a produit une lettre qu'elle avait adressée le 19 mai 2014 à A._, chiffrant à 6'607 fr. l'ensemble des rétrocessions perçues du 1er janvier 2003 au 31 décembre 2012 en relation avec l'investissement des avoirs de sa mandante.
Par ordonnance du 12 septembre 2014, le Tribunal de première instance du canton de Genève a rejeté la requête. Il a jugé que les conclusions de A._ consistaient en réalité en une demande de reddition de compte, qui n'avait pas sa place dans une procédure de preuve à futur.
A._ a interjeté appel auprès de la Chambre civile de la Cour de justice du canton de Genève. Pour sa part, la banque a conclu au rejet de l'appel. A._ a déposé des observations sur la réponse, puis la banque a brièvement dupliqué par mémoire du 24 novembre 2014. Le 26 novembre 2014, la Chambre civile a envoyé à A._ une copie de cette dernière écriture et a informé les parties que la cause était gardée à juger. Le 4 décembre 2014, A._, de son propre chef, a déposé des observations sur la duplique, dont elle a adressé une copie à la partie adverse. Celle-ci, se référant à l'envoi de A._, a produit une brève détermination le 11 décembre 2014; la Chambre civile en a envoyé copie à A._. Cette dernière a alors déposé une nouvelle écriture le 15 décembre 2014; la cour cantonale en a adressé une copie à la banque.
Statuant le 20 février 2015, la Chambre civile a rejeté l'appel et confirmé l'ordonnance rejetant la requête de preuve à futur. Elle a notamment relevé que la requérante ne réclamait pas un nombre limité de documents bien déterminés, mais tentait en réalité de réunir des faits supplémentaires pour construire une future action en justice, ce qui n'était pas le but de la preuve à futur.
C.
A._ interjette un recours en matière civile. Elle conclut à ce que sa requête de preuve à futur soit admise, subsidiairement à ce que la cause soit renvoyée à l'autorité cantonale pour nouvelle décision.
B._ SA propose le rejet du recours. La recourante a, de son propre chef, déposé des observations. L'intimée a renoncé à formuler des contre-observations. La cour de céans a alors informé les parties qu'elles avaient eu suffisamment l'occasion de se déterminer sur les arguments de la partie adverse et que toute nouvelle écriture serait classée sans être prise en considération.

Considérant en droit :
1.
1.1. La décision attaquée met fin à la procédure de preuve à futur dans une cause où aucun procès principal au fond n'est pendant. Il s'agit là d'une décision finale au sens de l'<ref-law> (<ref-ruling> consid. 1.1). Elle a été rendue en matière civile (<ref-law>) par un tribunal supérieur d'un canton, qui a statué sur recours (<ref-law>). L'affaire est de nature pécuniaire, car la requête de preuve à futur poursuit en définitive et principalement un but économique (cf. arrêt 4A_646/2014 du 14 avril 2015 consid. 1.1; arrêt 4A_36/2010 du 20 avril 2010 consid. 1.1; consid. 1.2 non publié de l'<ref-ruling>; cf. également <ref-ruling> consid. 12.1 p. 448; <ref-ruling> consid. 2c p. 531). La cause atteint manifestement la valeur litigieuse de 30'000 fr. ouvrant le recours en matière civile dans les affaires ne relevant ni du droit du travail ni du droit du bail à loyer (<ref-law>). Au surplus, la recourante n'a pas obtenu gain de cause dans la procédure cantonale (<ref-law>). Déposé dans le délai (<ref-law>) et la forme (<ref-law>) prévus par la loi, le recours en matière civile est recevable.
1.2. Les dispositions sur les mesures provisionnelles sont applicables à la décision portant sur l'administration de preuves à futur (<ref-law>; <ref-ruling> consid. 1.1). Seule la violation des droits constitutionnels peut être invoquée dans le recours (<ref-law>).
2.
Selon les conditions générales de l'intimée intégrées dans les divers contrats passés avec la recourante, le droit suisse est applicable et le for judiciaire est à Genève. Ces points ne sont pas contestés.
3.
3.1. Invoquant l'art. 29 al. 2 Cst. et l'art. 6 par. 1 CEDH, la recourante se plaint d'une violation de son droit d'être entendue, au motif que les juges genevois n'auraient pas tenu compte de ses écritures des 4 et 15 décembre 2014.
3.2. Dans la partie "en fait" de l'arrêt attaqué, la cour cantonale relève qu'il y a eu un double échange d'écritures, suivi d'un avis du 26 novembre 2014, indiquant aux parties que la cause était gardée à juger; il n'est pas fait mention des écritures postérieures. Les actes déposés par la recourante le 4 décembre 2014 et par l'intimée le 11 décembre 2014 figurent toutefois dans le dossier de l'autorité précédente, lequel consiste en une simple fourre réunissant les pièces sans index, sans fixation et sans numérotation. La quatrième écriture de la recourante, datée du 15 décembre 2014, ne s'y trouve pas; mais l'intimée en a déposé une copie avec son mémoire de réponse adressé à la cour de céans, copie portant le sceau de transmission de l'autorité précédente. Il est donc manifeste que la cour cantonale a eu cette écriture en mains. La recourante, qui avait accès au dossier, ne le conteste d'ailleurs pas, ce qui scelle la question.
La recourante fonde sa critique sur le seul fait que ses troisième et quatrième écritures ne sont pas expressément citées dans l'arrêt attaqué. L'absence de mention de ces actes ne signifie pas pour autant que l'autorité précédente les a ignorés. La recourante pouvait tenter de démontrer que ces écritures contenaient un argument dont on ne trouve pas trace dans les considérants de l'arrêt cantonal; elle n'en a rien fait, se bornant à affirmer sans autre précision que les écritures en cause contenaient des arguments en fait et en droit pertinents pour le sort de la cause et méritant d'être étudiés par l'autorité cantonale. Dans ces conditions, il ne saurait être retenu, en fait, que les juges précédents ont ignoré ces écritures.
Cette conclusion dispense la cour de céans d'examiner si et, le cas échéant, dans quelle mesure l'art. 29 al. 2 Cst. et l'art. 6 CEDH garantissent le droit à la réplique (cf. <ref-ruling> consid. 3.3 p. 192 et consid. 3.5 p. 193) dans une procédure de preuve à futur fondée sur l'<ref-law>, laquelle ne tend pas à trancher au fond des droits ou des obligations (<ref-ruling> consid. 3.3.3 p. 13 s.; arrêt 4A_334/2015 du 22 septembre 2015 destiné à la publication, consid. 3.3.1 et 4.2.3).
4.
La recourante se plaint d'une application arbitraire de l'<ref-law> (en relation avec l'<ref-law>). Selon cette disposition, le tribunal administre les preuves en tout temps lorsque la mise en danger des preuves ou un intérêt digne de protection est rendu vraisemblable par le requérant. La recourante invoque uniquement un intérêt digne de protection. A cet égard, elle explique ne disposer d'aucune information sur les critères qui ont conduit l'intimée à investir dans les fonds litigieux, ni sur l'étendue de l'examen auquel il a été procédé; elle ne serait ainsi pas en mesure de déterminer si, sur la base des éléments alors en mains de la banque, la décision d'investir dans ces fonds était conforme au profil de risque qu'elle avait accepté. L'intérêt de la recourante résiderait dans la possibilité d'évaluer les chances de succès d'une action au fond contre l'intimée, respectivement de prouver la violation par la banque de son devoir de diligence. La recourante ajoute qu'en l'absence de toute information sur l'analyse des risques effectuée en relation avec les placements litigieux, elle n'est pas en mesure d'alléguer plus précisément les faits et, partant, d'introduire une action, ce qui justifierait précisément le dépôt d'une requête de preuve à futur. En ce qui concerne les rétrocessions, la recourante fait valoir un intérêt digne de protection à obtenir, avant d'ouvrir action, les documents lui permettant de vérifier le montant perçu à ce titre par la banque.
4.1. Une décision est arbitraire lorsqu'elle viole gravement une norme ou un principe juridique clair et indiscuté, ou contredit d'une manière choquante le sentiment de la justice et de l'équité. L'arbitraire, prohibé par l'art. 9 Cst., ne résulte pas du seul fait qu'une autre solution pourrait entrer en considération ou même qu'elle serait préférable. Le Tribunal fédéral ne s'écarte de la solution retenue par l'autorité cantonale de dernière instance que si sa décision apparaît insoutenable, en contradiction manifeste avec la situation effective, adoptée sans motifs objectifs ou en violation d'un droit certain. Il ne suffit pas que les motifs de la décision soient insoutenables; encore faut-il que celle-ci soit arbitraire dans son résultat (<ref-ruling> consid. 2.1 p. 18 s., 157 consid. 2.1 p. 168; <ref-ruling> consid. 3.2.5 p. 339; <ref-ruling> consid. 6.1 p. 379 s.).
4.2. Dans sa requête de preuve à futur, la recourante conclut à la remise par la banque de tous documents, en particulier internes, susceptibles de contenir des renseignements notamment sur l'analyse des risques effectuée en relation avec les "fonds Madoff", sur les décisions prises par les organes chargés de la politique d'investissement, sur les échanges entre les collaborateurs s'occupant de la gestion des fonds confiés, sur le montant des rétrocessions et l'information fournie à ce sujet à la cliente.
Le libellé de ces conclusions pose d'emblée la question de la nature du droit à la production de documents exercé par la recourante.
4.2.1. Les parties sont liées par un mandat. Sous le titre général "reddition de compte", l'<ref-law> met à la charge du mandataire l'obligation, envers le mandant, de lui rendre compte de sa gestion (Rechenschaftspflicht) et de lui restituer tout ce qu'il a reçu de ce chef (Ablieferungs- ou Herausgabepflicht). L'obligation de rendre compte comprend l'obligation de renseigner (Informationspflicht) (Rolf H. Weber, in Basler Kommentar, Obligationenrecht, vol. I, 6e éd. 2015, n° 2 ss ad <ref-law>; Franz Werro, in Commentaire romand, Code des obligations vol. I, 2e éd. 2012, n° 4 ad <ref-law>). Le droit à l'information doit permettre au mandant de vérifier si les activités du mandataire correspondent à une bonne et fidèle exécution du mandat (<ref-ruling> consid. 4.1.2 p. 54; <ref-ruling> consid. 2 p. 182) et, le cas échéant, de réclamer des dommages-intérêts fondés sur la responsabilité du mandataire (ATF <ref-ruling> consid. 2 p. 182; cf. également <ref-ruling> consid. 6.4 p. 435). Grâce à l'information obtenue, le mandant connaîtra également l'objet de l'obligation de restitution (<ref-ruling> consid. 4.1.2 p. 54; <ref-ruling> consid. 2 p. 182). Le devoir de renseigner peut porter sur la teneur de documents internes pour autant qu'elle soit pertinente pour contrôler les activités du mandataire (<ref-ruling> consid. 4.1.3 p. 56).
En l'espèce, comme elle le reconnaît dans son recours, la mandante ne dispose d'aucune information lui permettant de déterminer le degré de diligence dont la banque a fait preuve au moment d'investir dans les fonds litigieux; or, la violation de l'obligation de diligence constitue l'une des conditions de la responsabilité de la banque. La recourante ne connaît pas non plus le montant des rétrocessions soumises à l'obligation de restitution de l'intimée. Dans les conclusions de sa requête de preuve à futur, la mandante entend obtenir de la mandataire un nombre indéterminé de documents, décrits de manière très générale, qui seraient susceptibles de lui fournir, sur ces deux points, des renseignements lui permettant, le cas échéant, de fonder des prétentions en dommages-intérêts et en restitution de rétrocessions.
La recourante cherche à recueillir ainsi des informations sur la manière dont la banque a accompli ses activités en rapport avec le mandat, plus particulièrement lors du choix et du suivi des investissements dans les "fonds Madoff". Ce faisant, elle exerce manifestement le droit à la reddition de compte tel que défini plus haut.
4.2.2. Le droit à la reddition de compte fondé sur l'<ref-law> est une prétention de droit matériel, et non un droit de nature procédurale (cf. arrêt 5A_768/2012 du 17 mai 2013 consid. 4.1). En tant que droit accessoire indépendant, il peut faire l'objet d'une action en exécution. En ordonnant au mandataire de fournir l'information ou les documents requis, le juge règle définitivement le sort de la prétention, qui "s'épuise" avec la communication des renseignements ou des pièces (cf. <ref-ruling> consid. 2.7 p. 732 s.). Le jugement, revêtu de l'autorité de la chose jugée, doit être rendu après un examen complet en fait et en droit (cf. arrêt précité du 17 mai 2013 consid. 4.1).
Selon la jurisprudence, le juge ne peut pas ordonner par voie provisionnelle une mesure qui, par sa nature, implique un jugement définitif de la prétention à protéger, comme la reddition de compte au sens de l'<ref-law> (cf. <ref-ruling> consid. 2.7 p. 732 s.; pour le droit à la consultation des comptes de la SA [<ref-law>], <ref-ruling> consid. 2b p. 355).
De même, la procédure de preuve à futur en vue d'évaluer les chances de succès d'une action future ne peut pas être utilisée pour faire valoir une prétention en reddition de compte contestée par la partie adverse (cf. Gasser/Rickli, Schweizerische Zivilprozessordnung [ZPO] Kurzkommentar, 2e éd. 2014, n. 6 ad <ref-law> p. 85 s.). En effet, saisi d'une requête fondée sur l'art. 158 al. 1 let. b in fine CPC, le juge examine uniquement, sous l'angle de la vraisemblance, si le requérant dispose d'un intérêt digne de protection à l'administration de la preuve requise; il ne rend pas un jugement définitif sur un droit matériel (cf. <ref-ruling> consid. 3.3.3 p. 13 s.; arrêt 4A_334/2015 du 22 septembre 2015 destiné à la publication, consid. 3.3.1 et 4.2.3), après un examen complet en fait et en droit.
En résumé, la voie de la preuve à futur n'est pas ouverte pour faire valoir le droit que la recourante invoque en réalité, à savoir une prétention en reddition de compte fondée sur l'<ref-law>. Il s'ensuit que les juges genevois n'ont pas appliqué l'<ref-law> de manière arbitraire en confirmant l'ordonnance rejetant la requête de preuve à futur.
5.
Sur le vu de ce qui précède, le recours sera rejeté.
La recourante prendra à sa charge les frais et dépens de la procédure (art. 66 al. 1, art. 68 al. 1 et 2 LTF). En ce qui concerne le montant des frais, la recourante soutient que la présente affaire doit être traitée comme une contestation non pécuniaire au sens de l'<ref-law> et du ch. 2 du Tarif des émoluments judiciaires du Tribunal fédéral (RS 173.110.210.1).
Il n'en est rien (cf. consid. 1.1 supra). Cela étant, dans les affaires pécuniaires, la valeur litigieuse est certes l'un des facteurs qui, en principe, entrent en ligne de compte pour calculer l'émolument judiciaire, mais d'autres éléments peuvent intervenir (cf. <ref-law>). Dans une procédure de preuve à futur, la valeur litigieuse du procès envisagé au fond ne saurait être déterminante à elle seule. Dans la mesure où la preuve à futur tend à éviter les procès dénués de chances de succès, l'émolument sera, dans ce cas-là, nécessairement réduit par rapport à celui qui serait prélevé dans le procès au fond.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 6'000 fr., sont mis à la charge de la recourante.
3.
La recourante versera à l'intimée une indemnité de 7'000 fr. à titre de dépens.
4.
Le présent arrêt est communiqué aux mandataires des parties et à la Chambre civile de la Cour de justice du canton de Genève.
Lausanne, le 16 décembre 2015
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente : Kiss
La Greffière : Godat Zimmermann